猫眼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__