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

前言

  为了获取多源数据需要到各个网站获取一些景点的评论信息和图片,首先选到了携程和蚂蜂窝这两个网站,将一些爬取过程记录下来

携程

分析数据

  首先我们去携程的鼓浪屿景点速览看一下我们要爬取的页面,大概发现有几十个景点,每个景点的结构应该都是差不多的,所以我们选择第一个景点进去看看具体的页面应该怎么爬取。

我们需要的是红圈的部分,很容易可以知道这个评论页面是动态加载的,所以不能直接用bs4或者正则直接提取元素,我们需要分析一下页面动态传输的接口。打开chrome审查元素,切换到network查看一下传输的内容,首先清空内容避免干扰,然后点击下一页,我们可以得到

通过查看传回的数据我们可以得到这就是我们所要的接口,使用的是post进行传输,传输的Form Data 有很多字段,大致可以猜测出来

poiID 是景点的poiID pagenow 是当前的页数 star 是评分1-5,0代表全部 resourceId 是一个每个资源对应的值

爬取的时候只需要改变这些值就可以根据自己的需求爬取内容了,但是需要注意的事携程的pagenow最多只能获取100页,而且poiID和resourceId的值是没有规律的,需要我们逐个景点查看…我自己依次找了鼓浪屿所有景点的值,并存在文本中,文末有github的共享。

建库

  我们要做的第一件事就是想好数据库的结构,我选择的还是使用mysql,具体的结构如下:

获取数据

  这个我就不具体分析了,也不难,就是有几个坑要注意一下。

第一,不是所有评论都有景色,性价比之类的评分,所以这里要加一个判断。 第二,原来是有出行时间这一项的,现在好像没有了额。 第三,评论文本可能会出现单引号,插入数据库会出现错误,要转义或者替代一下。 第四,抓取速度不要太快,携程反扒还是比较厉害的。

蚂蜂窝

分析数据

  同样,蚂蜂窝的数据也是动态加载的,用相同的方法查看分析数据接口。

可以看到蚂蜂窝的数据获取方式是get,我们可以找出请求的url的规律。经过比较不同景点和不同页面的数据,我们发现参数的改变主要在两个地方,一个是poiid我用href代替,一个是页数我用num代替。获取景点的评论数据只要改变这两个值就可以了

url=’http://pagelet.mafengwo.cn/poi/pagelet/poiCommentListApi?callback=jQuery18105332634542482972_1511924148475&params=%7B%22poi_id%22%3A%22{href}%22%2C%22page%22%3A{num}%2C%22just_comment%22%3A1%7D’

获取每个景点的poi

这个不是post请求我们就不必一个个景点去获取参数了,我们可以访问这个站点来发现所有的用户,然而这个站点的数据也是动态加载的

根据上面的图片我们可以清晰的看到我们只需要传入页码数就可以得到所有的景点的poiid,然后根据这些poiid我们就可以得到所有的评论数据,这一部分我们用一个函数来处理

def get_param():# 获取所有景点的参数total = []router_url = 'http://www.mafengwo.cn/ajax/router.php'for num in range(1, 6):params = {'sAct': 'KMdd_StructWebAjax|GetPoisByTag','iMddid': 12522,'iTagId': 0,'iPage': num}pos = requests.post(url=router_url, data=params, headers=headers).json()soup_pos = BeautifulSoup(pos['data']['list'], 'lxml')result = [{'scenery': p['title'], 'href': re.findall(re.compile(r'/poi/(\d+).html'), p['href'])[0]} for p insoup_pos.find_all('a')]total.extend(result)return total

  其余部分相似,不再过多说明。

个人博客

8aoy1.cn

爬取携程和蚂蜂窝的景点评论数据\携程评论数据爬取\旅游网站数据爬取相关推荐

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

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

  2. Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)

    前言:使用python+scrapy框架爬取蚂蜂窝旅游攻略 Git代码地址:https://github.com/qijingpei/mafengwo 获取代理IP地址的开源项目ProxyPool-m ...

  3. python爬取蚂蜂窝帖子图片

    前言 最近在学习python网络爬虫,从爬取图片入手.周末爬取了一个图标网站.果壳.数字尾巴的帖子的图片,现在尝试爬取蚂蜂窝的帖子里的图片.爬取图片仅为个人练习,侵删. 代码框架 import url ...

  4. Python爬虫实战——蚂蜂窝国内目的地全抓取

    上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易.这次的蚂蜂窝国内目的主要有三点比较困难的地方 1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发 ...

  5. 多协程爬取中大微博内容(以及转发数,点赞数,评论数)

    这个是在之前的微博爬取(Python)–中大微博前100条微博内容以及评论转发点赞数目爬取 的并发版本 代码 import requests from gevent import monkey imp ...

  6. 蚂蜂窝上线酒店预订 商业化进展步骤之一

    转自 http://www.traveldaily.cn/article/81079.html 旅游社区最终都要走到产品销售的一步,不管是酒店也好,机票也好,旅游路线也好.今年我们看到不少旅游社区加快 ...

  7. 使用requests爬取实习僧网站数据

    任务要求: 爬取实习僧网站的招聘公司信息和职位信息,并存储到数据库中,对应的数据库表和需要爬取的字段见下面表一和表二(注意:爬取存在的字段) 代码以上传带github上:使用requests爬取实习僧 ...

  8. 携程DBA负责人俞榕刚:OceanBase在携程的落地和实践

    编者按 作为在互联网耕耘多年的一线互联网厂商,携程在数据库实例规模和数据规模都是行业标杆,那么在引入分布式数据库时有哪些考量和在业务实践后效果如何?带着这些问题我们专访了高级数据库总监,携程DBA负责 ...

  9. 不做传统OTA要做内容电商,蚂蜂窝缘何推未知旅行?

    大概20多天前,一则题为"一场未知的旅行"的社交广告刷爆朋友圈,之后针对这条广告发出的阐述文章<你敢不敢?3小时后,用一场未知旅行检验一段感情>一经发布后,更是在被咪蒙 ...

最新文章

  1. MIPS SDE简介
  2. php如何避免在循环中使用sql语句
  3. python str转dict_在python中将str转换为dict
  4. 安卓学习 之 碎片(四)
  5. mysql面试题分组并合并列
  6. 调用拷贝构造函数的场景
  7. python 下载csv文件保存到 redis
  8. 互联网计算机技术方面的入门书籍有哪些推荐?
  9. VB.net:VB编程语言/VB.net语言编程的简介、IDE安装、学习路线(几十项案例代码实现)之详细攻略
  10. 继电保护原理1.1-电流、方向保护
  11. 低代码平台上的出入库管理
  12. iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了
  13. 量化交易接口UFX是什么?
  14. python爬虫练习之爬取豆瓣读书所有标签下的书籍信息
  15. c语言循环中怎样读取多行,c++循环读取多行文本文件
  16. Opencv minMaxLoc与minMaxIdx的区别。
  17. 方块填数 “数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部
  18. 集散控制系统是集计算机技术,集散控制系统概述
  19. 解锁加密音乐,支持mgg mflac ncm kgm qmc等
  20. 【科研分享】Matplotlib 绘制多子图(subplot)进行实验结果分析

热门文章

  1. windows端口被占用的解决方法
  2. text-decoration
  3. 计算机技术对社会的消极影响,【信息技术引发的社会问题】_请举一个例子说说信息技术对社会带来哪些消极的影响,你能分析一下......
  4. 洛谷 P2357 守墓人(树状数组)
  5. 这次一定弄懂完全图、连通图、连通分量、强连通图、强连通分量、极大连通分量、极小联通分量、生成树、生成森林的区别
  6. 一本深入探讨C++11~C++17最新语言特性的书推荐给你
  7. 项目一众筹网03_5_工作模式探讨同步和异步探讨
  8. 【计算机网络】数据链路层(完整版)
  9. iOS获取App ipa包以及资源文件-----本人亲自测试可用!!!
  10. binary,varbinary,image的区别