python爬虫实践

您所在的位置:网站首页 豆瓣前20名电影排行 python爬虫实践

python爬虫实践

2024-07-16 19:41:16| 来源: 网络整理| 查看: 265

一、爬虫的介绍及爬虫环境的安装:

1.爬虫简介:

即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。

2.爬虫的基本工作流程及框架:

1.首先选取一部分精心挑选的种子URL;2.将这些URL放入待抓取URL队列;3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

3.接下来需要爬取的豆瓣电影排行榜网页界面为:

4.人工操作步骤:

1.获取电影信息的网页; 2.找到要评分信息的位置; 3.复制、保存我们想要的评分数据。

5.爬虫操作步骤:

1.请求并下载电影页面信息; 2.解析并定位评分信息; 

3.保存评分数据。

下面我们就使用requests和xpath来爬取豆瓣电影中的“电影名”、“导演”、“演员”、“评分”等信息。

6.爬虫前python环境的安装:

打开cmd,输入以下指令:

pip install requests

pip install lxml

二、正式开始爬虫的步骤:

1.导入模块:

2.获取豆瓣电影目标网页并解析:

豆瓣电影排行榜的网址为:

https://movie.douban.com/chart

首先设置headers,伪装成浏览器 #一些网站会设置一些反爬策略来限制爬取数据,所以就需要让爬虫伪装成浏览器取爬取数据

设置url为想爬取的网址

然后用requests.get()方法获取页面的text,

然后用etree.HTML()来解析下载的页面数据”data“

headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' #伪装成浏览器 } url = 'https://movie.douban.com/chart' #豆瓣电影排行榜 data = requests.get(url, headers=headers).text# 给定url并用requests.get()方法来获取页面的text s=etree.HTML(data)#用etree.HTML()来解析下载的页面数据“data”。

获取电影的xpath信息:

这里的xpath信息要手动获取,获取方式如下:

1.如果你是用谷歌浏览器的话,鼠标“右键”–>“检查元素” 2. Ctrl+Shift+C将鼠标定位到标题。 

3.“右键”–> “Copy”–> “Copy Xpath”就可以复制xpath

如下图:

接下来我们获取了电影名称,电影网址,电影评分,电影评价的人数,电影的上映日期及主演等的xpath,发现这些xpath的前半部分都是相同的,所以我们就截取前半部分通用的xpath存放于file中.

例如:获取电影主演的xpath为://*[@id="content"]/div/div[1]/div/div/table[1]/tbody/tr/td[2]/div/p

其中需要把/tbody删除掉,不然获取不了想要的信息,然后只需把table[1]改为:table,就能获取该页面中的多个电影信息。

即截取前半部分的最终xpath为:

.//*[@id="content"]/div/div[1]/div/div/table/tr

利用time.sleep方法睡眠,防止怕太快被网站封了

利用for循环遍历file,然后用.xpath方法连接后半部分的xpath,定位到具体的内容,如果有额外的字符出现还可以用.strip()方法使其去掉,然后把内容存放在变量中。最后在循环内把每次获取到的值输出即可。

file=s.xpath('.//*[@id="content"]/div/div[1]/div/div/table/tr')#copy网页的xpath,截取前半部分通用的 time.sleep(3)#睡眠,防止爬太快被网站封了 scores='评分:' evaluate='一句话评价:' actor='上映日期及主演:' for div in file: title = div.xpath("./td[1]/a/@title")[0] href = div.xpath("./td[1]/a/@href")[0] score=div.xpath("./td[2]/div/div/span[2]/text()")[0] num=div.xpath("./td[2]/div/div/span[3]/text()")[0].strip("(").strip().strip(")").strip() director = div.xpath("./td[2]/div/p/text()")[0]#截取后半部分的xpath,定位到具体的内容 print(f"{title},{href},{actor}{director},{scores}{score},{num}\n")#输出爬取到的内容

该爬虫程序的完整代码如下:

from lxml import etree import requests import time#这里导入时间模块,以免豆瓣封你IP headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' #伪装成浏览器 } url = 'https://movie.douban.com/chart' #豆瓣电影排行榜 data = requests.get(url, headers=headers).text# 给定url并用requests.get()方法来获取页面的text s=etree.HTML(data)#用etree.HTML()来解析下载的页面数据“data”。 file=s.xpath('.//*[@id="content"]/div/div[1]/div/div/table/tr')#copy网页的xpath,截取前半部分通用的 time.sleep(3)#睡眠,防止爬太快被网站封了 scores='评分:' evaluate='一句话评价:' actor='上映日期及主演:' for div in file: title = div.xpath("./td[1]/a/@title")[0] href = div.xpath("./td[1]/a/@href")[0] score=div.xpath("./td[2]/div/div/span[2]/text()")[0] num=div.xpath("./td[2]/div/div/span[3]/text()")[0].strip("(").strip().strip(")").strip() director = div.xpath("./td[2]/div/p/text()")[0]#截取后半部分的xpath,定位到具体的内容 print(f"{title},{href},{actor}{director},{scores}{score},{num}\n")#输出爬取到的内容

爬取豆瓣电影排行榜的结果如下:



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭