300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名

python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名

时间:2021-08-01 08:59:22

相关推荐

python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名

我最近在看崔庆才老师的《python3 网络爬虫开发实战》觉得挺不错的,上面还有一个 用正则表达式爬取猫眼电影的电影排行榜 我练了一下,感觉不会很难,后来学到了xpath,就想用xpath去爬取,结果发现比正则表达式简单多了

下面讲一下基本原理,

先用 respone =requests.get(url,headers=headers) 获取html文件

这里要注意的是,猫眼电影加了反爬虫(可能是拿它练手的人太多了吧),所以最好加上User-Agent利用xpath 提取上面得到的html文件,根据<p class="name">这些标签获取电影名、主演、上映时间等

上代码

# -*- coding: utf-8 -*-# @Time : /9/24 12:04# @Author : Tangweeiyang# @File : Maoyang_spider.pyimport requestsfrom lxml import etreeindex=1#获取猫眼HTMLdef get_one_page(url):headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/0101 Firefox/54.0',}respone =requests.get(url,headers=headers) # 一定要加上header否则,无法爬取猫眼的网页if respone.status_code==200:return respone.textelse:return None# 获取数据def parse_one_page(text):html=etree.HTML(text)movies_name=html.xpath('//p[@class="name"]//text()')movies_star=html.xpath('//p[@class="star"]//text()')movies_time = html.xpath('//p[@class="releasetime"]//text()')global indexwith open('Maoyan.txt','a+',encoding='utf-8') as file: #编码格式一定要写成'utf-8' 否则后面会乱码for i in range(0,10):file.write('排名第%s'%index+'电影:\t'+movies_name[i].strip()+'\t'+movies_star[i].strip()+'\t'+movies_time[i].strip()+'\n')print(movies_name[i].strip(),movies_star[i].strip(),movies_time[i].strip())index+=1if __name__ == '__main__':with open('Maoyan.txt', 'w', encoding='utf-8') as file:file.write('猫眼电影排名前100电影名单如下\n')url_start='/board/4?offset='for i in range(0,100,10):url=url_start+str(i) #有个小陷阱,不能写成 url_start=url_start+str(i)text=get_one_page(url)parse_one_page(text)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。