抓取豆瓣影评评分

正常的抓取

分析请求的url

https://movie.douban.com/subject/26322642/comments?start=20&limit=20&sort=new_score&status=P&percent_type=

里面有用的也就是start和limit参数,我尝试过修改limit参数,但是没有效果,可以认为是默认的

start参数是用来设置从第几条数据开始查询的

设计查询列表,发现页面中有url中的查询部分,且指向下一个页面

于是采用下面的代码进行判断是否还有下一个页面

if next_url:

visit_URL('https://movie.douban.com/subject/24753477/comments'+next_url)

用requests发送请求,beautifulsoup进行网页解析

把数据写入txt

import requests

from bs4 import BeautifulSoup

first_url = 'https://movie.douban.com/subject/26322642/comments?status=P'

# 请求头部

headers = {

'Host':'movie.douban.com',

'Referer':'https://movie.douban.com/subject/24753477/?tag=%E7%83%AD%E9%97%A8&from=gaia_video',

'Upgrade-Insecure-Requests':'1',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

}

def visit_URL(url):

res = requests.get(url=url,headers=headers)

soup = BeautifulSoup(res.content,'html5lib')

div_comment = soup.find_all('div',class_='comment-item') # 找到所有的评论模块

for com in div_comment:

username = com.find('div',class_='avatar').a['title']

comment_time = com.find('span',class_='comment-time')['title']

votes = com.find('span',class_='votes').get_text()

comment = com.p.get_text()

with open('1.txt','a',encoding='utf8') as file:

file.write('评论人:'+username+'\n')

file.write('评论时间:'+comment_time+'\n')

file.write('支持人数:'+votes+'\n')

file.write('评论内容:'+comment+'\n')

# 检查是否有下一页

next_url = soup.find('a',class_='next')

if next_url:

temp = next_url['href'].strip().split('&') # 获取下一个url

next_url = ''.join(temp)

print(next_url)

# print(next_url)

if next_url:

visit_URL('https://movie.douban.com/subject/24753477/comments'+next_url)

if __name__ == '__main__':

visit_URL(first_url)

模仿移动端

很多时候模仿移动端获得的页面会比PC端的简单,更加容易解析,这次模拟移动端,发现可以直接访问api获取json格式的数据,nice!

至于怎么模拟移动端只需要将user-agent修改为移动端的头

useragents = [

"Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/47.0.2526.70 Mobile/13C71 Safari/601.1.46",

"Mozilla/5.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",

"Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)"

怎么获取这些头部?用火狐的插件user-agent switcher

之后的操作就是解析json

import random

import requests

import json

import time

first_url = 'https://m.douban.com/rexxar/api/v2/tv/26322642/interests?count=20&order_by=hot&start=0&ck=dNhr&for_mobile=1'

url = 'https://m.douban.com/rexxar/api/v2/tv/26322642/interests'

# 移动端头部信息

useragents = [

"Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/47.0.2526.70 Mobile/13C71 Safari/601.1.46",

"Mozilla/5.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",

"Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)"

]

def visit_URL(i):

print(">>>>>",i)

# 请求头部

headers = {

'Host':'m.douban.com',

'Upgrade-Insecure-Requests':'1',

'User-Agent':random.choice(useragents)

}

params = {

'count':'50',

'order_by':'hot',

'start':str(i),

'for_mobile':'1',

'ck':'dNhr'

}

res = requests.get(url=url,headers=headers,params=params)

res_json = res.json()

interests = res_json['interests']

print(len(interests))

for item in interests:

with open('huge.txt','a',encoding='utf-8') as file:

if item['user']:

if item['user']['name']:

file.write('评论用户:'+item['user']['name']+'\n')

else:

file.write('评论用户:none\n')

if item['create_time']:

file.write('评论时间:'+item['create_time']+'\n')

else:

file.write('评论时间:none\n')

if item['comment']:

file.write('评论内容:'+item['comment']+'\n')

else:

file.write('评论内容:none\n')

if item['rating']:

if item['rating']['value']:

file.write('对电影的评分:'+str(item['rating']['value'])+'\n\n')

else:

file.write('对电影的评分:none\n')

if __name__ == '__main__':

for i in range(0,66891,20):

# time.sleep(2)

visit_URL(i)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

本文标题: 使用Python抓取豆瓣影评数据的方法

本文地址: http://www.cppcns.com/jiaoben/python/242044.html

python豆瓣影评_使用Python抓取豆瓣影评数据的方法相关推荐

  1. wireshark怎么抓apk 包_图解如何抓取手机的数据封包「手机抓包技术详解」

    通常我们主要抓取手机等移动设备的三种数据封包:TCP.HTTP.HTTPS.本文我们主要通过图文详细讲解使用wireshark抓取手机的tcp数据包,使用Fiddler抓取手机的HTTP.HTTPS数 ...

  2. Python笔记:使用代理方式抓取App的数据操作案例

    概述 App的爬取相比Web端爬取更加容易,反爬中能力没有那么强,而且响应数据大多都是JSON形式,解析更加简单. 在APP端若想查看和分析内容那就需要借助抓包软件,常用的有:Filddler.Cha ...

  3. java 省市县数据_使用Jsoup抓取全国地区数据(省市县镇村)

    最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到 ...

  4. Python中使用PhantomJS抓取Javascript网页数据

    有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...

  5. python爬取豆瓣电影评论_使用Python抓取豆瓣影评数据的方法

    抓取豆瓣影评评分 正常的抓取 分析请求的url 里面有用的也就是start和limit参数,我尝试过修改limit参数,但是没有效果,可以认为是默认的 start参数是用来设置从第几条数据开始查询的 ...

  6. python爬取豆瓣读书_用python+selenium抓取豆瓣读书中最受关注图书并按照评分排序...

    抓取豆瓣读书中的(http://book.douban.com/)最受关注图书,按照评分排序,并保存至txt文件中,需要抓取书籍的名称,作者,评分,体裁和一句话评论 方法一:#coding=utf-8 ...

  7. python 豆瓣评论分析方法_使用python抓取豆瓣top250电影数据进行分析

    抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 import BeautifulSoup impor ...

  8. python 制作高斯mask_Python3 练手项目: 抓取豆瓣陈情令评论,并制作词云图

    (点击上方公众号,可快速关注一起学Python) 链接: https://blog.csdn.net/weixin_43930694/article/details/98334465 一.项目简介 1 ...

  9. powerbi python词云图_Python 练手项目: 抓取豆瓣陈情令评论,并制作词云图

    一.项目简介 1.内容:循环抓取豆瓣影评中所有观众对<陈情令>的评论,存储在文本文档中,并运用可视化库--词云对其进行分析. 2.目标网站: https://movie.douban.co ...

最新文章

  1. SpringMVC的国际化
  2. CUDA系列学习(一)An Introduction to GPU and CUDA
  3. 一、android XML资源文件详解 —— 从物理上分析
  4. AI发展“风口”在哪里?陪伴才是“蓝海”
  5. 如何去追女生,看了你就成功了一半
  6. 商品管理系统(可用于学生参考)
  7. 如何预置apk(MTK6589)
  8. 创业公司必备,20个提升团队工作效率的工具神器
  9. 3.深入了解listen函数
  10. 跟“杀熟”说再见 在熊拍拍只有双赢
  11. 人工智能守护青山绿水 内蒙古环保厅引入阿里云ET环境大脑
  12. POJ:3276-Face The Right Way(线性反转)
  13. 介绍几款可用的web应用防火墙
  14. 算法题 - 数字游戏问题 - Python
  15. 谈谈抖音企业蓝V认证要怎样申请?
  16. android 9.0 10.0 添加系统字体并且设置为默认字体
  17. 什么是CDN,内容分发网络学习
  18. Docker启动Elastic Search报错 ERROR: [1] bootstrap checks failed
  19. 记录一下用过的正则表达式
  20. 速看常用工控通讯接口协议大全

热门文章

  1. win10如何安装Rational rose(详解)
  2. Clickhouse 查询分布式表子查询 (Distributed Subqueries )
  3. tfcenter主动提供映射服务(网络所有客户端可用)
  4. Windows任务管理器同名进程批量删除
  5. git报错:(Pulling without specifying how to reconcile divergent branches)
  6. 《使用 Python 和 Scrapy 半小时爬了 10 个在线商店的网页》
  7. Mac中安装Miniconda, Pytorch, Jupyter notebook
  8. 人际沟通必看的书推荐
  9. 3. Julia变量和变量的声明
  10. php阴影效果,JavaScript_jquery实现div阴影效果示例代码,复制代码 代码如下: html - phpStudy...