【爬虫+MongoDB】《星际穿越》豆瓣影评信息爬取

提示:本文仅学习交流使用,以下案例仅供参考。

本文以面向对象的形式进行编码,利用xpath正则表达式进行数据解析,将最终结果存入MongoDB数据库中。

一、页面分析

  1. 首先进入豆瓣《星际穿越》评论页面。https://movie.douban.com/subject/1889243/reviews
  2. 页面最下方,获取评论的总页数。
    在这里插入图片描述
  3. 通过翻页可以找到以下规律:参数start从0开始,页数+1,start+20。
页数 URL start
1 https://movie.douban.com/subject/1889243/reviews?start=0 0
2 https://movie.douban.com/subject/1889243/reviews?start=20 20
3 https://movie.douban.com/subject/1889243/reviews?start=40 40
4 https://movie.douban.com/subject/1889243/reviews?start=60 60
  1. 通过以上分析可以构造出评论页面的URL,每页页面结构一致,据此可以写出代码。

二、代码实现

注意:请求头的Cookie设置,适当的sleep,MongoDB库表名填写。

# 需要影评具体内容可以将详情页的URL一同爬取,再二次编写爬虫程序。
from pymongo import MongoClient
import random
import requests
from lxml import html
import re
import time


class Spider():
    def __init__(self, dbName, collectName, dbHost="localhost", dbPort=27017):
        # 评论首页
        self.indexUrl = 'https://movie.douban.com/subject/1889243/reviews'

        # 评论页模板
        self.tempUrl = 'https://movie.douban.com/subject/1889243/reviews?start={}'

        # UA池
        self.UApool = [
            "Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14",
            "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14",
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:68.0) Gecko/20100101 Firefox/68.0',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:75.0) Gecko/20100101 Firefox/75.0',
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:83.0) Gecko/20100101 Firefox/83.0',
            'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; Touch; MASMJS)',
            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Hot Lingo 2.0)',
            "Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02",
            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值