前言:
现时兄弟们对“python爬取猫眼电影”大约比较关心,朋友们都需要了解一些“python爬取猫眼电影”的相关知识。那么小编也在网摘上搜集了一些有关“python爬取猫眼电影””的相关知识,希望大家能喜欢,看官们一起来了解一下吧!前言:最近真的是忙到 x 生活都没时间(说的好像不忙就有一样),手动滑稽。话不多说了,那今天给你们带来的就是一个简单的静态网页的爬取:requests + 正则爬取猫眼 top100
环境
wi10 + python3.6
思路
这个简单的爬虫有两个主要的思路。 1、打开猫眼 top100 4,确定要爬取得内容。 那这里打开猫眼 top100 之后是这样的:
上图,我以霸王别姬为例讲解,我们要爬取的目标内容有 电影排名,电影海报链接,电影名称,主演,上映时间以及评分等 6 个主要内容。
2、审查元素,思考如何使用正则匹配你需要的内容
霸王别姬
审查元素
可以看到上图,分别标出了我们要爬取得内容。其中每一个电影使用了一个 dd 标签包裹,我们要爬取的内容就在这个标签下,如排名被包裹在 i 标签里面,海报链接被包裹在 a 标签内,电影名称被包裹在 篇 p 标签下的 a 标签内,主演、上映时间以及评分都被包裹在 p 标签内, 其中评分被分开成两个 a 标签装载。
代码
获取 html
如何用代码打开指定的网页并获取其 html 代码? 这里用到了 Python 的网络请求库 requests。还没安装的打开你的 cmd 窗口,执行命令:pip install requests(仅限 windows 平台) 之后会收到安装成功的提示。那安装完之后就可以开始写代码了。网络请求代码如下:
这段代码也没啥好讲的,首先就是导入 requests 库,使用它的 get 方法传入 url 和 header(特别重要)返回的是字符串类型的 html 代码 以及请求状态码。判断返回的状态码是否等于 200 ,等于 200 则返回 text 即 网页html代码。返回的代码和我们审查元素时看到的是一样的(仅限此网页),这里不多赘述。
解析 html
上述代码出现了很多 .*?这个符号的意思就是贪婪模式,原则是匹配尽可能多的字符,如果看不明白上面那个正则匹配的话,建议去 菜鸟教程学习一下正则表达式。 运行上述代码解析出来的 html 就是这样的:列表形式返回匹配项
格式化匹配项
如上 yield 的作用就是生成一个迭代器。
写入文件
这里用到了 json 库。首先就是指定文件(默认存储在当前路径),之后就是开启一个文件流并指定编码格式,把 content 写入文件中。
实现翻页
上述代码只是爬取首页的 10 部电影而已,要爬取剩下的 90 部电影,我们需要在浏览器点击下页时,观察地址栏的变化。这里的话,点击下页其实就是一个 offset 的改变。原来是地址是:
点击第二页是:
后面页数以此类推。 思考后可得出下面代码:
这时爬取得就是 猫眼 TOP100 的电影,并保存在 top100.txt 文件中:
猫眼 Top100
至此,requests + 正则爬取猫眼电影 Top100 项目已完成。一个用了 50 行代码左右。完整代码如下:
当然,这只是爬取静态网页而已,代码非常的简单,但是也建议初学者自己动手实践一下,虽然很简单,但千万不能有所见即所得的想法。刚开始我也觉得很简单。但是有时你可能会遇到意想不到的坑,比如我在写这篇代码时,就忽略了 yield 的用法,踩了一个很大的坑,用了我一小时才填完。但是也没关系,所谓大神也是踩坑--填坑 不断循环这个过程锻炼而来的。
最后,小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程,想要这些资
料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助
标签: #python爬取猫眼电影