1.当网页打开的方式不同时,在开发者选项找到的包含评论的文件地址不同,比如第一种,当我们找到的评论界面是含有下一页选项的时候(如下图)。我们在左边文件界面发现包含评论的网页地址名字为‘'productPageComments.action'开头的,点开查看header和response可以分析得网址的规律,Query string  parameters 里面的page对应着评论的页面,改变这个参数就可以实现评论网页的翻页了。

对于网页的内容点开response可以看见是json格式的网页,所以复制下来可以用在线的json在线解析工具解析一下,看清楚网站的结构。我随便找了个json解析的网站,分析了一下这个网页的结构。

2.当评论网页是以另外一种方式打开,如下图,打开后网页可以一直往下拖自动加载评论,不需要点击下一页(也不包含下一页选项)。这时我们在左边的文件选项中找到包含评论的网页地址名字为‘'getcommentlist'开头的,其他的内容和上面一样,找到url的规律,再到网站里用爬虫规则来提取需要的信息。

3.小技巧,当打开开发者选项时,在network里面文件特别多,找到想要的文件比较困难,可以按住'ctrl +shift+F',调出search选项,键入关键词,在打开的文件中查找包含关键词的文件。如下图,查找包含‘评论’的文件

4.因为这些动态网页通常都是脚本(json,xml)可以点击'Type'选项对文件进行自动归类,在script类型中找相应的评论文件,这样可以接更清晰,一目了然,如下图

5.爬取的代码

整体爬取的思路,首先,确定爬去的网页是否是动态网页,如果直接对爬取网页打开源代码可以看见所有的需要的信息,并且可以直接获得每一页的网页的url,那么静态网页就不需要上面的那些操作了,直接看源代码用写爬虫了。如果针对某一产品打开不同网页的评论页面但是url地址都不变,说明隐藏了url的其他部分,鉴定为动态网页,运用上面的方法打开开发者选项,找到对应的爬去的网页的文件,获取url参数,找到地址变动的规律,一般都是页面page的变动。找到url地址就好办了,找到某一个爬取页面,分析页面结构,用requests,BeautifulSoup,re等抽取需要的信息。下面是爬取京东小米手机的代码,因为网站反扒,所以限定了爬去的时间,不然爬太快会报错。关于json之前不太明白,查了一下后就是网页用字典形式来变现出来,网页结构清晰,易于处理。这里爬的网页就是json格式。

1 from bs4 importBeautifulSoup2 importrequests3 importre,json4 importpandas as pd5 importtime6

7 #京东小米官方网站爬取小米6X的评论

8 #动态网页爬取

9

10 def getHtml(url,data): #只输入URL的主体部分,后面的参数用下面的字典附加上

11 try:12 r=requests.get(url,params=data)13 r.raise_for_status()14 r.encoding=r.apparent_encoding15 returnr.text16 except:17 print('爬取失败')18

19 def getComment(html):#获得一页的评论

20 commentList=[]21 i = json.dumps(html) #将页面内容编码成json数据,(无论什么格式的数据编码后都变成了字符串类型str)

22 j = json.loads(i) #解码,将json数据解码为Python对象

23 #print(type(j))

24 comment = re.findall(r'{"productAttr":.*}', j) #对网页内容筛选找到我们想要的数据,得到值为字典的字符串即'{a:1,b:2}'

25 #print(comment)

26 comm_dict = json.loads(comment[0]) #将json对象obj解码为对应的字典dict

27 #print(type(comm_dict))

28 commentSummary = comm_dict['comments'] #得到包含评论的字典组成的列表

29 for comment in commentSummary: #遍历每个包含评论的字典,获得评论和打分

30 c_content = ''.join(comment['content'].split()) #获得评论,由于有的评论有换行,这里用split()去空格,换行,并用join()连接起来形成一整段评论,便于存储

31 score = comment['score'] #用户打分

32 #print(score)

33 #print(c_content)

34 commentList.append([score,c_content])35 returncommentList36

37 '''获得多页评论'''

38 def conments(url,num):#url主体和爬取网页的数量

39 data = {'callback': 'fetchJSON_comment98vv6708', #调整页数page

40 'productId': '7437756',41 'score': 0,42 'sortType': 5,43 'page': 0,44 'pageSize': 10,45 'isShadowSku': 0,46 'rid': 0,47 'fold': 1

48 }49 comments=[]50 for i in range(num+1):51 try:#防止网页提取失败,使爬取终断,直接跳过失败页,继续爬取

52 data['page']=i53 html =getHtml(url, data)54 comment =getComment(html)55 except:56 continue

57 comments+=comment58 print('页数',i)59 time.sleep(3)#由于网站反爬虫,所以每爬一页停3秒

60 #if i/20==0:

61 #time.sleep(5)

62 returncomments63

64 if __name__ =='__main__':65 time_start =time.time()66 url = 'https://sclub.jd.com/comment/productPageComments.action?'

67 comm=conments(url,500)68 print('共计%d条评论'%(len(comm)))#打印出总共多少条评论

69 name=['score','comment']70 file=pd.DataFrame(columns=name,data=comm)71 file.to_csv('D:/machinelearning data/crawlerData/mi6x_JD500.csv',index=False)72 time_end =time.time()73 print('耗时%s秒' % (time_end - time_start))

python爬取京东评论怎么翻页_爬取京东网页评论(动态网页)相关推荐

  1. python实现二级页面带自动翻页功能,三级页面爬虫苏宁图书。

    最近有在做小学期的项目,用scrapy实现爬取图书,下面是我实现的过程. 具体实现功能有:二级页面带自动翻页功能,三级页面的第一页爬取,大小类别的区分. 框架:scrapy 使用到chrome的插件: ...

  2. wordpress 评论ajax,WordPress教程 WordPress实现提交评论ajax翻页效果教程

    WordPress提交评论ajax翻页的效果会很大的提高用户体验度,虽然我们一般的个人WordPress博客评论也不会有很多,但是用户体验至上嘛,所以WordPress主题站小编为大家分享WordPr ...

  3. 某音短视频评论采集翻页(移动安全篇)

    本章测试一个作品的评论及翻页: 以及前面的抓x包方式,在专栏里也有很多,xposed抓包过sslping,通用版本等: https://codeooo.blog.csdn.net/category_1 ...

  4. python爬取微博评论超100页_python爬取新浪微博评论-Go语言中文社区

    简介 爬取微博m站评论.由于api限制只能爬取前100页,如果想要更全数据需爬pc端. 工具 python 3.5 requests库 re库 步骤 1. 登陆保存cookie 首先,打开m.weib ...

  5. 爬取美女图片实现翻页

    我们先上url,链接:https://www.xiurenwang.vip/bang?f=2 图片内容我就不展示了,自己可以打开看下 打开浏览器进行抓包,找个type为document的响应源码,搜索 ...

  6. paperwhite3翻页_亚马逊Kindle Paperwhite第二代评论-以及新的Kindle软件更新

    paperwhite3翻页 I'm a longtime Kindle fan. Love it. It's not a tablet, not a computer, my Paperwhite K ...

  7. Scrapy爬图片入门——静态网站翻页爬虫

    接上文爬图片下载: Scrapy爬图片入门--静态网站_ahc176的博客-CSDN博客 翻页: 通过观察发现url变化是非常有规律的. 修改image.py: 代码: import scrapyfr ...

  8. python翻页_如何用python tkiner实现图片翻页功能

    如何用python tkiner实现图片翻页功能 发布时间:2020-06-26 12:52:59 来源:亿速云 阅读:108 作者:Leah 如何用python tkiner实现图片翻页功能?针对这 ...

  9. python爬虫翻页_教给你一个python爬虫最简单的翻页的办法

    很多同学对python爬虫翻页感到很是头疼,下面我教给大家一个最简单的办法:模糊搜索法.以这个网站 :https://m.51xw.net/meizi/ 为例 打开网站我们先看到的是一个个的图集,点开 ...

最新文章

  1. 家电 计算机和电讯领域 英语,网络通讯及计算机英语词汇.doc
  2. 版本记录及相关数据汇总
  3. PC微信逆向:分析发送xml名片call
  4. win7 php redis 扩展,Windows中安装Redis及php redis扩展
  5. 细分shared_ptr智能指针在各个版本的使用情况
  6. Monthly Expense( POJ-3273 )
  7. 如何用python一个字一个字的输出汉字
  8. 手机电量剩一半就充比较好,还是快没电了再充比较好?为什么?
  9. NumPy中特别的数组函数 By Youki~
  10. Spyder远程连接矩池云
  11. Spark常用算子讲解二
  12. 订单操作-订单详情查询代码实现
  13. excel 对列数据进行去重操作
  14. Ubuntu迅雷下载工具安装使用
  15. vue学习之ElementUI时间选择器报错getTime is not a function
  16. 如何在Google文档中添加文本框
  17. banner生成图像的网站有哪些?
  18. python学习第八天---用Django框架创建可重用注册登录系统
  19. iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)
  20. 雷卯电子PUSB3FR4完美兼容安世半导体

热门文章

  1. 補一篇用 Genero BDL 寫 hello world
  2. 基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能
  3. linux 无法实例化类,linux – 有没有办法将两个实例化的systemd服务作为一个单元进行控制?...
  4. 51单片机移植UCOS-II的方法与改进
  5. 解析力評測(1) MTF和SFR
  6. python数据可视化第七节(绘制3D图表和统计地图)
  7. java 54张扑克牌_Java基础高级综合练习题扑克牌的创建
  8. 基于易语言的键盘监听器(仅供学习)
  9. 致远OA合并处理策略
  10. chrome:initiator使用