猫眼TOP100
好多人的爬虫都是从爬取猫眼排行榜,或者爬爬妹子图开始的,我也不例外,今天和大家分享一下猫眼TOP100榜的爬取。
目标网址:https://maoyan.com/board/4
分析url

还是从第二页开始找,可以看到offset一直是以10的倍数在递增,因为每一个都展示10部电影,所以url就很容易分析出来。
def main():
url = 'http://maoyan.com/board/4?offset={}'
my = MaoYanTop100()
for i in range(10):
# 每次偏移都是10的倍数,这里用了线程池,只是用用好像并没有加快速度
my.threadpool.submit(my.get_html, (url.format(i * 10)))
my.threadpool.shutdown(wait=True)
分析源码
- F12和Ctrl+U都打开看一下,没有使用js动态加载,也没有加密,真是太好了。

- 可以看到每个页面的10个item就放在这10个
<dd>标签里面。

- 打开一个
<dd>标签可以看到需要爬取的信息,画出红框的就是这次我准备采集的,使用的xpath方式来解析,但是在解析<img>的时候出现了些小问题,最后使用的是打断点的方式找到了需要的值。 - 这次还是使用mongodb的方式来存储信息,因为用mysql还得创建表好烦。
完整代码
"""
爬取猫眼电影TOP100
"""
import datetime
import pymongo
import requests
from gevent.threadpool import ThreadPoolExecutor
from lxml import etree
class MaoYanTop100(object):
def __init__

本文介绍如何爬取猫眼电影排行榜前100的数据,通过分析URL和源码,利用Python和requests、pymongo、lxml库实现。遇到问题时,通过调试找到解决方案,并用mongodb存储数据。同时,探讨了爬取速度慢的可能原因和自定义计时装饰器的使用。
最低0.47元/天 解锁文章
2150

被折叠的 条评论
为什么被折叠?



