python爬取携程景区用户评论(爬虫时遇到翻页但url不变问题时的解决办法)

  • python爬取携程景区用户评论
    • Ajax页面加载的页面和普通页面的不同
    • 解决办法
    • 效果

python爬取携程景区用户评论

前两天想要爬取携程网上景区的用户评论,但是却发现用户评论在翻页时,网页的url却不变,这就造成我们无法用简单的request.get()访问其他页面获取内容了。经过查阅资料发现这是一个通过Ajax页面加载的页面。具体Ajax页面加载的页面是什么这里不加以解释,本文只关于如何爬取这样的网站。本文以黄鹤楼景区为例。携程网黄鹤楼景区链接

Ajax页面加载的页面和普通页面的不同

下面是用户评论第一页和第二页的截图。


可以看出,不管是哪页,网址都是https://piao.ctrip.com/ticket/dest/t8979.html,这就是Ajax页面加载的页面和普通页面的不同,造成我们不能再用简单的方法爬取。

解决办法

  • 打开网页的审查元素
    首先我们要打开网页的审查元素,然后切换到network查看一下传输的内容,首先点击一下左上角的红色按钮然后刷新一下界面,避免干扰,然后观察下图圈中的区域:

发现了这些参数以后,我们在爬虫模拟HTTP请求时,只需要加上这些参数就可以了。

  • 代码编写
    该代码除爬取了500条用户的评论外,还爬取了用户名、评论时间和评分,并写入了csv文件。
import re
import requests
import json
import time
import csvc=open(r'D:\xiecheng.csv','a+',newline='',encoding='utf-8')
fieldnames=['user','time','score','content']
writer=csv.DictWriter(c,fieldnames=fieldnames)
writer.writeheader()head = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}postUrl = "https://sec-m.ctrip.com/restapi/soa2/12530/json/viewCommentList"data_1 = {"pageid": "10650000804","viewid": "8979","tagid": "0","pagenum": "1","pagesize": "50","contentType": "json","SortType": "1","head": {"appid": "100013776","cid": "09031037211035410190","ctok": "","cver": "1.0","lang": "01","sid": "8888","syscode": "09","auth": "","extension": [{"name": "protocal","value": "https"}]},"ver": "7.10.3.0319180000"
}html = requests.post(postUrl, data=json.dumps(data_1)).text
html = json.loads(html)
jingqu =  '黄鹤楼'
pages = html['data']['totalpage']
datas = []
for j in range(pages):data1 = {"pageid": "10650000804","viewid": "8979","tagid": "0","pagenum": str(j + 1),"pagesize": "50","contentType": "json","SortType": "1","head": {"appid": "100013776","cid": "09031037211035410190","ctok": "","cver": "1.0","lang": "01","sid": "8888","syscode": "09","auth": "","extension": [{"name": "protocal","value": "https"}]},"ver": "7.10.3.0319180000"}datas.append(data1)for k in datas[:10]:print('正在抓取第' + k['pagenum'] + "页")time.sleep(3)html1 = requests.post(postUrl, data=json.dumps(k)).texthtml1 = json.loads(html1)comments = html1['data']['comments']for i in comments:user = i['uid']time1 = i['date']score = i['score']content = i['content']content = re.sub(" ", "", content)content = re.sub("
", "", content)writer.writerow({'user': user,'time':time1,'score': score,'content':content})
c.close()

效果

最终效果:

python爬取携程景区用户评论相关推荐

  1. python 爬取携程旅游景点评论

    python爬取携程旅游景点评论 爬取网址:https://you.ctrip.com/ 爬取评论全部代码 import requests import json import re import t ...

  2. python 携程登陆,Python爬取携程信息

    python爬取携程景点评论信息 今天要分析的网站是携程网,获取景点的用户评论,评论信息通过json返回API,页面是这个样子的 按下F12之后,F5刷新一下 具体需要URL Request的方式为P ...

  3. python爬取携程机票并发送过滤后的机票信息到指定邮箱

    0x0 前言 在疫情发生之前,在知乎上刷到一个回答,说是用服务器实现一个自动爬取机票并将过滤后的机票信息发送到自己的邮箱中,感觉十分有趣.由于疫情原因无法返校,加上家和学校相隔接近3000公里,再加上 ...

  4. python中飞机票购买程序_「最低折扣机票查询」Python 爬取携程所有机票找出最低折扣机票,让你无忧回家过年 - seo实验室...

    最低折扣机票查询 前言 对于平时出行大多数人都是选择坐高铁,当然了如果这是对于距离比较近的行程是最划算的,如果对于路途长远的人言,提前购买飞机票价格可能比高铁票更加的便宜,如果我们可以爬取机票数据并分 ...

  5. python爬取携程旅游评价信息词云图分析

    python爬取携程旅游评价信息词云图分析 前言 前面咱们已经分析过如何爬取携程旅游的相关信息,如果没有看过的,可以先跳转看一下前面的那篇博客:python 爬虫 一键爬取携程旅游团数据 这一篇呢,咱 ...

  6. Python爬取携程机票代码实例

    Python爬取携程机票代码实例 现在携程的页面是通过接口传递数据的,不能直接使用xpath进行解析,需要模拟调用接口的步骤 dcity是指出发地的城市编码 acity是指目的地的城市编码 其他参数是 ...

  7. python爬取携程酒店信息_不写代码玩转爬虫实例(3) - 抓取携程酒店信息

    背景需求 有不少朋友问永恒君携程网站的酒店信息怎么抓取,今天这篇文章来分享一下使用web scraper来快速实现抓取携程酒店信息. 例如,在携程官网搜索北京 密云水库的酒店信息, 可以搜索到非常多的 ...

  8. python 携程_python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数...

    本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.同时欢迎加入社交媒体数据交流群:99918768 前言 为 ...

  9. python爬取携程景点_python爬取携程景点评论信息

    今天要分析的网站是携程网,获取景点的用户评论,评论信息通过json返回API,页面是这个样子的 按下F12之后,F5刷新一下 具体需要URL Request的方式为POST,还需要你提取的哪一页,下面 ...

最新文章

  1. 1008 N的阶乘 mod P ——51Nod(同余定理)
  2. 【Git】搭建Git 服务器
  3. Spring AOP编程-aspectJ通知类型-6大通知
  4. linux mysql 停止,linux 里 重启 和停止 mysql的原理
  5. C和汇编混合编程----printf
  6. Oracle adviser,Oracle10g SQL tune adviser
  7. 通过动态获取cookie爬取国家企业信用信息公司系统
  8. C# set和get如何用
  9. 不小心运行了一个***程序~word 2003 打开2007格式文件的转换器.rar 里的
  10. Android内存泄漏检测利器:LeakCanary
  11. UGUI自定义组件之Image根据Text大小自动调整
  12. 排序算法Java实现(希尔排序)
  13. Unity-UI-实现文本框内容自动滚动
  14. echarts:中国地图-省市区二级联动
  15. AD学习问题记录(三):AD21版本如何重新定义板子形状
  16. 离境收心,入于虚无。
  17. SAP BAPI BAPI_GOODSMVT_CREATE Goods movement
  18. 运用gm/id法设计二级运放教程
  19. VUE模拟实现双向绑定
  20. Matter Test-Harness自动化测试系统

热门文章

  1. 根本无心工作,只想尽快为祖国母亲庆生
  2. 保重/千万保重!英语怎么说?
  3. P3964 [TJOI2013]松鼠聚会
  4. 外刊逐句精读|《金融时报》:亚马逊的官方水军
  5. Flash的SLC、MLC和TLC三者区别
  6. 店铺图片抓手,一键抓取商品详情高清图的工具
  7. elementUI合并单元格
  8. Verilog -- 有符号与无符号的加法和乘法运算
  9. 什么是BCD码?BCD码的用处。怎么把BCD码转换成二进制值?
  10. 了解模型预测控制3--MPC设计参数