打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用Python网络爬虫来看看最近电影院都有哪些上映的电影
来自公众号:Python爬虫与数据挖掘

/1 前言/
猫眼电影是淘宝联合打造电影分类最全的电影的平台,能够第一时间告知用户,最新的电影上线时间。今天教大家获取猫眼电影的即将上映的电影详情。

/2 项目目标/

获取猫眼电影的即将上映的电影详情。

/3 项目准备/

软件:PyCharm

需要的库:requestslxmlrandomtime

插件:Xpath

网站如下:

https://maoyan.com/films?showType=2&offset={}

点击下一页的按钮,观察到网站的变化分别如下:

https://maoyan.com/films?showType=2&offset=30https://maoyan.com/films?showType=2&offset=60https://maoyan.com/films?showType=2&offset=90

点击下一页时,页面每增加一页offset=()每次增加30,所以可以用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。

/4 项目实现/

1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址,代码如下所示。

import requestsfrom lxml import etree
import timeimport random
class MaoyanSpider(object): def __init__(self): self.url = 'https://maoyan.com/films?showType=2&offset={}'
def main(self): pass
if __name__ == '__main__': spider = MaoyanSpider() spider.main()

2、随机产生UserAgent。

 for i in range(1, 50):    # ua.random,一定要写在这里,每次请求都会随机选择。        self.headers = {            'User-Agent': ua.random,        }

3、发送请求,获取页面响应。

def get_page(self, url): # random.choice一定要写在这里,每次请求都会随机选择 res = requests.get(url, headers=self.headers) res.encoding = 'utf-8' html = res.text self.parse_page(html)

4、xpath解析一级页面数据,获取页面信息。

1)基准xpath节点对象列表。

 #  创建解析对象parse_html = etree.HTML(html)# 基准xpath节点对象列表dd_list = parse_html.xpath('//dl[@class='movie-list']//dd')


2)依次遍历每个节点对象,提取数据。

for dd in dd_list: name = dd.xpath('.//div[@class='movie-hover-title']//span[@class='name noscore']/text()')[0].strip() star = dd.xpath('.//div[@class='movie-hover-info']//div[@class='movie-hover-title'][3]/text()')[1].strip() type = dd.xpath('.//div[@class='movie-hover-info']//div[@class='movie-hover-title'][2]/text()')[1].strip() dowld=dd.xpath('.//div[@class='movie-item-hover']/a/@href')[0].strip() # print(movie_dict) movie = '''【即将上映】


5、定义movie,保存打印数据。

 movie = '''【即将上映】            电影名字: %s
主演:%s
类型:%s详情链接:https://maoyan.com%s========================================================= ''' % (name, star, type,dowld)print( movie)

6、random.randint()方法,设置时间延时。

time.sleep(random.randint(1, 3))

7、调用方法,实现功能。

html = self.get_page(url)self.parse_page(html)

/5 效果展示/

1、点击绿色小三角运行输入起始页,终止页。

2、运行程序后,结果显示在控制台,如下图所示。

3、点击蓝色下载链接, 网络查看详情。

/6 小结/

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、本文基于Python网络爬虫,利用爬虫库,实现爬取猫眼电影。

3、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4、猫眼电影代码链接:,https://github.com/cassieeric/python_crawler/tree/master/MaoyanMovie,觉得不错,记得给个star噢。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
scrapy实战--登陆人人网爬取个人信息
Python爬虫框架Scrapy的安装与正确使用方法
Python网络爬虫中爬到的数据怎么分列分行写入csv文件中
Appium+Python+pytest自动化测试框架的实战
利用scrapy爬取豆瓣250
Python大佬批量爬取中国院士信息,告诉你哪个地方人杰地灵
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服