爬虫3_猫眼TOP100

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

猫眼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__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值