绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
requests+正则表达式爬取猫眼电影00
2019-11-22 11:35:47

有趣的程序媛 



前言

本文主要讲述使用python爬取猫眼00榜的电影名称,评分,以及电影图片等,爬取的URL是:http://maoyan.com/bard/4。

安装类库

pip install requests

分析目标URL

打开http://maoyan.com/bard/4,观察页面规律。

可以看到页面上链接已经变为http://maoyan.com/board/4?offset=10,可以看的出来第二页链接新增了offset=10这个参数,这时可以看到排名20到30的电影信息,我们手动更改这个参数,就可以看到00的全部电影信息了。

抓取单个页面

将url=http://maoyan.com/board/4,传入get_one_page()函数,可以获取目标地址的源代码。

正则解析

打开浏览器调试页面可以发现我们要抓取的所有信息被<dd></dd>标签包含,所以我们只要把<dd></dd>中所有要抓取的信息都用正则表达式匹配出来就可以了。

表达式如下:

排名:<dd>.*?board-index.*?>(.*?)</i>

图片:<dd>.*?board-index.*?>(.*?)</i>.*?src="(.*?)"

电影名称:

<dd>.*?board-index.*?>(.*?)</i>.*?src="(.*?)".*?name.*?a.*?>(.*?)</a>

后解析全部字段解析如下,同时我们还要对解析出来的数据进行结构化处理:

写入文件

写入文件,我们在上面结构化处理后的文件是构建的字典格式,我们可以通过JSON库,序列化输出到本地文件中。

构建分页链接

因为猫眼的偏移量是10,20,,,100,所以在构建的时候可以构建一个生成式传入到mian()函数当中。代码块如下:

脚下留心

请求的时候带上header,减小被服务器识别为爬虫的概率,算是反反爬的一种。

写在后

1、之前写爬虫的时候往往一个函数涵盖全部的功能,之后维护起来自己都想抽自己,之后看了几个大佬的代码之后也学习到函数式编程的好处,把功能写成一个个函数方便之后维护,别人也能看的懂你在写什么。

2、还有就是多加注释,实习的时候实习的师傅告诉我好在写代码的时候注释的量能占到总的百分20%,虽然并没有写到那么多,但是还是养成写注释的习惯,方便自己方便他人。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~