发布网友 发布时间:2024-09-09 13:06
共1个回答
热心网友 时间:2024-10-21 12:19
导读:今天首席CTO笔记来给各位分享关于python能爬多少评论的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
如何用python爬取一个网站的评论数据假如一个商品全部评论数据为20w+默认好评15w+这15w+的默认好评就会不显示出来。那么我们可以爬取的数据就只剩下5w+接下来我们就分别爬取全部好评好评中评差评追加评价但是就算这些数据加起来也仍然不足5w+上文的博主猜测可能有两点原因:
1.出现了数据造假,这个数字可能是刷出来的
2.真的有这么多的评论,但这时候系统可能只显示其中比较新的评论,而对比较旧的评论进行了存档。
在博主理论的基础上我也进行了很多相应的测试,就是说无论如何我们最终都爬不到剩下的5w条数据只能爬取一部分但这一部分数据也将近上千多条如果有小伙伴能爬取下更多欢迎补充。
整体思路
全部评价好评中评差评追加评价的网址都是涉及到一定的参数的只要修改网页的数据在遍历页码即可完成全部的爬取。
python爬虫:微博评论分析
最近王和李的离婚闹得沸沸扬扬,相信大伙们都已经吃了不少的瓜。本文结合李的第一篇文章发文下面的网友们的评论来看看大家到底怎么看待这件事。
数据来自该地址:
爬取的下面的全部评论:
微博的网页属于Ajax渲染,当我们向下滑动的时候会显示的评论,地址栏的URL不变,需要找到实际的请求URL。
1、右击【检查】,找到【Network】
2、确定每页的内容URL
这里是首页部分
滑动之后显示每页内容的URL;
3、每页的URL地址
从第二页开始的URL地址多的部分是max_id,刚好这个参数的值是前一页的返回内容:
4、介绍第一页的爬取
比如我们可以获取第一个用户的相关信息:
最终我们可以看到第一页爬取的数据展示:
参考上面的逻辑可以爬取到微博下面的全部评论
导入需要的库:
查看我们爬取到数据的基本信息,我们导入前5行数据:
基本信息:查看数据的shape形状,总共是47638行,8个字段,并且不存在缺失值。
将我们爬取到的格林威治形式的时间转成熟悉的标准化时间形式:
国内的省份中北京、广东、上海、江苏都是吃瓜的大省份!
果然:女性真的很爱吃瓜?远超男性
通过点赞数和回复数来看看这篇微博下的火爆评论:
有位网友的评论87万+的点赞数!666
同样还是这位网友的评论,回复数也是No.1
从点赞数和回复数的整体分布来看,这条评论真的是别树一帜!已经完全偏离了其他的数据:
查看原数据我们发现这条评论就是:
看来以前的很多爆料都被锤啦!
通过用户的年龄和点赞数、回复数来看,用户年龄在7、8、9、10年时的用户更为活跃;年龄偏大或者新生的微博用户的评论较少。
同时点赞数也集中在2000-5000之间的部分
从用户的评论时间点来看,当李发了第一篇文之后,瞬间引爆了评论(左侧密集部分);这条微博沉寂了4天,没有想到23号的晚上又火了
将粉丝的评论内容分词找到他们的重点:
重点关注下前50个词语:
除了两位当事人,粉丝还比较关心他们的孩子。毕竟孩子是无辜的,但是他们的瓜不正是孩子引起的吗?个人的看法。
总之:不管是王还是李,如果真的是渣男或者渣女,请上十字架,阿门!
Python爬虫有一个非常厉害的框架Scrapy,我联系了北京大学出版社送两书:《Python网路爬虫框架Scrapy从入门到精通》。精选两位走心留言的小伙伴
对Python爬虫感兴趣的朋友也可以直接购买喔。
用爬虫爬携程景区评论,总共有3万多条,但能查看的只有3000条,怎么爬取全部的3万条评论?使用python爬嘛,这要找到那个翻页的参数,然后一页页的循环去爬取
python批量爬取京东手机评论信息及星级爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论。
下面以一款手机为例,详细介绍python批量爬取京东评论。
找到评论区域
按F12进入浏览器的调试窗户(我用的是谷歌浏览器)
点击network,选择all,接下来点击评论第二页,选择js,可以找到加载评论的链接(正常应该选择all,一点点找,我之前已经找到过链接,直接在js处找了),评论的链接通常含有comment单词,也可以在调试器中搜索找到。
Python-爬取淘宝评论importurllib.request
importurllib.parse
importjson
importre
importjsonpath
items_list=[]
defmain():
#创建循环,爬取多页的评论内容#
url=';userNumId=100340983currentPageNum=1pageSize=20'
headers={
"User-Agnet":"Mozilla/5.0(Macintosh;IntelMacOSX10_13_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/79.0.3945.130Safari/537.36"
}
request=urllib.request.Request(url=url,headers=headers)
json_text=urllib.request.urlopen(request).read().decode()
print(json_text)
#将json两边的非法字符去掉#
json_text=json_text.strip('()\n\t\r')
print(json_text)
exit()
#将json格式字符串转化为python对象#
obj=json.loads(json_text)
print(obj)
print(type(obj))
#抓取评论内容:用户头像、用户名、评论内容、评论时间、手机类型#
#首先取出comments这个列表#
comments_list=obj['comments']
#遍历这个列表,依次提取每一条评论#
forcommentincomments_list:
#用户头像#
user=jsonpath.jsonpath(comment,'..sku')[0]
#将评论信息保存到字典中#
item={
'用户头像':face,
'用户名':name,
'评论':ping_content,
'时间':ping_time,
'信息':info,
}
print(item)
exit()
ifname=='main':
main()
Python豆瓣电影《肖申克的救赎》评论爬取先看效果图:
地址:(;status=P)
爬取前1w条评论
存储成txt文档
数据预处理
中文分词
统计top10的高频词
可视化展示高频词
根据词频生成词云
审核评论
================================================================
配置准备
中文分词需要jieba
词云绘制需要wordcloud
可视化展示中需要的中文字体
网上公开资源中找一个中文停用词表
根据分词结果自己制作新增词表
准备一张词云背景图(附加项,不做要求)
paddlehub配置
#安装jieba分词和词云
pip?install?jieba
pip?install?wordcloud
#安装paddle
pip?install?--upgrade?PaddlePaddle
#安装模型
#hub?install?porn_detection_lstm==1.1.0
pip?install?--upgrade?paddlehub
pip?install??numpy
#安装Beautifulsoup
pip?install?BeautifulSoup4
Github地址:
有可能遇到的问题:
1.UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xe8inposition1:invalidcontinuationbyte
解决方法:
1.不使用urlLib换做requests
2.去掉请求头中的'Accept-Encoding':'gzip,deflate,br'
3.返回值reponse转字符串指定编码utf-8
#'Accept-Encoding':'gzip,deflate,br',
2.关于cookie
解决方法:
1.去豆瓣请求头中复制cookie设置到请求头中
'Cookie':'bid=WD6_t6hVqgM'
3.请求返回418的问题
解决方案模拟设置请求头,设置user-agent
'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/94.0.4606.81Safari/537.36',
4.使用beautifulsoup获取不到评论
解决方法:
第一步:指定解析参数为'lxml'
soupComment=BeautifulSoup(html,'lxml')
第二步:
findAll方法指定css文件的class名
print('网页内容:',soupComment.prettify())
comments=soupComment.findAll(class_='short')
点击获取源码
结语:以上就是首席CTO笔记为大家整理的关于python能爬多少评论的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~