《流浪地球》影评数据爬取分析

《流浪地球》影评数据爬取分析

人生苦短,我用Python。

阿巴阿巴阿巴,爬虫初学者,志在记录爬虫笔记,交流爬虫思路。
话不多说,开始进行操作。
对于电影数据影评的爬取,这里选取的网站是豆瓣网(豆瓣网自从全面反爬之后,很多东西都只会用户看一部分,而且一天中访问量不得超过60次(maybe?))。

1、首先看一看网页结构:

在这里插入图片描述
用红框标出来的就是要爬取的部分。
在这里插入图片描述
在这里插入图片描述
这个就是在网页源码中的呈现形式。
当然,不满足于表面的爬取,还要深入到详情页中去爬取一些东西:
在这里插入图片描述
在这里插入图片描述

2、进行代码编写前的设置

在编写前需要对得到网页的请求头:
在这里插入图片描述
在这里只需要得到图上的这两个部分

3、在Python中进行编写操作

(1)引入需要的库

import requests
from lxml import etree
import time
import re
from bs4 import BeautifulSoup
import pandas as pd

(2)访问得到网页相应体
在这里插入图片描述
在这里决定采用BeautifulSoup和Xpath进行解析的操作(Xpath是因为有谷歌插件,好用)

user=[]###用户名
recommend=[]###推荐
time=[]###评论时间
useful=[]###赞
comment=[]###评论正文
localurl=[]###用户详细页url
times=[]###评论具体时刻
for i in range(25):###只会给用户看25页数据,然后网页的变化规律是每一页*20
    res=requests.get('https://movie.douban.com/subject/26266893/comments?start='+str(i*20)+'&limit=20&sort=new_score&status=P',
                headers={
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36',
                        'Cookie': 'bid="7sAyY56pZbA"; _vwo_uuid_v2=DCD965FA612B9AA380F3FA1A2339BB564|b67597b839c7d6bc73e9b665eed2bc00; __gads=ID=c51078e4178c48eb:T=1587128591:S=ALNI_MZDDDN1GCQhOG2lGtWmhDyztyYnZw; ll="118331"; __yadk_uid=8afSWVhZUZdGvfM5Si9RIU8CXGBzBERi; ct=y; push_doumail_num=0; push_noty_num=0; __utmv=30149280.21342; douban-fav-remind=1; _ga=GA1.2.744215232.1587128554; _gid=GA1.2.526658113.1587270968; UM_distinctid=17190b8f9179b-09d49616f834c5-6373664-1fa400-17190b8f918bdb; Hm_lvt_19fc7b106453f97b6a84d64302f21a04=1587270974; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1587349547%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D87F10nBWauMdSF-PaKHoG8T9ZEv2mnP_6OpeQWaLQx4n7WfQTD7-myRg8wfRPA_I%26wd%3D%26eqid%3Dd465097600331851000000065e9d0827%22%5D; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.744215232.1587128554.1587310231.1587349547.5; __utmc=30149280; __utmz=30149280.1587349547.5.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utma=223695111.1317237486.1587265874.1587310231.1587349547.4; __utmb=223695111.0.10.1587349547; __utmc=223695111; __utmz=223695111.1587349547.4.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmt=1; __utmb=30149280.2.10.1587349547; dbcl2="213426135:OE+aP6Hb5Lk"; ck=zS1Z; _pk_id.100001.4cf6=0559898e47160491.1587265874.4.1587349586.1587310278.'})
    ht=etree.HTML(res.text)###xpath解析
    htt=BeautifulSoup(res.text,'lxml')###BeautifulSoup解析
    user=user+ht.xpath('//*[@id="comments"]/div/div/h3/span[2]/a/text()')
    recommend=recommend+ht.xpath('//*[@id="comments"]/div/div/h3/span[2]/span[2]/@title')
    time=time+[j.text for j in htt.find_all(name='span',class_='comment-time')]
    times=times+[t['title'] for t in htt.find_all(name='span',class_='comment-time')]
    useful=useful+ht.xpath('//*[@id="comments"]/div/div[2]/h3/span[1]/span/text()')
    comment=comment+ht.xpath('//*[@id="comments"]/div/div[2]/p/span/text()')
    localurl=localurl+ht.xpath('//*[@id="comments"]/div/div/h3/span[2]/a/@href')

在得到表面数据后,因为在之前有了详情页的url,所以继续循环访问,得到详情页数据。

local=[]###用户地址
addtime=[]###用户注册时间
for m in localurl:
        ress=requests
  • 14
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值