Python爬虫学习笔记(二、爬取网页源码和解析网页) |
您所在的位置:网站首页 › 解析数据是什么意思 › Python爬虫学习笔记(二、爬取网页源码和解析网页) |
爬取网页(获取网页源码)
定义askURL方法来获取指定网页源码信息,askURL中需要重新定义head头部信息,用来伪装浏览器信息,防止网站反爬程序识别报错418。 如果没有设置头部信息,使用Python程序对网站进行爬取显示user-agent信息为: 修改头部代理再来测试爬取豆瓣网源码 #绕过反爬 # url="http://httpbin.org/get" #url="http://httpbin.org/post" url="http://douban.com" headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36" }#加入用户代理信息 伪装身份 req=urllib.request.Request(url=url,headers=headers) response =urllib.request.urlopen(req) print(response.read().decode("utf-8"))爬取成功 得到网页源代码以后,要分析源代码,需要从源代码中剥离我们需要的内容。 #baseurl = "https://movie.douban.com/top250?start=" for i in range(0,10):#调用获取网页函数10次 url=baseurl+str(i*25)#start后依次为0、25、50……225 html=askURL(url)#保存获取到的网页源码我们经过分析网页网址格式已经知道,250部电影信息分布在10个网页,每个网页有25部电影信息,所以需要循环10次调用获取网页源码的方法。 先分析网页源代码:
解析网页需要用到BeautifulSoup模块 soup= BeautifulSoup(html, "html.parser") for item in soup.find_all('div',class_="item"): #查找符合要求的字符串,形成列表 #print(item) #测试查看电影所有信息 #class是一个类别所以加一个_ data=[] #保存一部电影的所有信息 item=str(item)这是爬取到的一部电影的item源代码 1![]() 导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins /... 1994 / 美国 / 犯罪 剧情 9.7 2154144人评价希望让人自由。 通过分析第一步电影的网页源代码,我们来获取其中更精确的符合我们要求的信息。 首先举例获取电影的网页链接: findLink=re.compile(r'') #创建正则表达式对象,表示规则(字符串的模式)影片链接规则↑ #(.*?)表示一个组——中间的网址,提取源码中的电影链接 link=re.findall(findLink,item)[0]#re库通过正则表达式查找指定字符串的第一个符合条件的 data.append(link)#将搜索到的网址添加到data中同样的我们来获取更多我们所需要的信息,电影图片、电影名称、评分、点评人数、一句话概括、电影概述等等…… 只需要编写相应的正则表达式来提取对应信息即可。 findImgSrc=re.compile(r' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |