利用框架 pyspider 能实现快速抓取网页信息,而且代码简洁,抓取速度也不错。

  环境:macOS;Python 版本:Python3。

  1.首先,安装 pyspider 框架,使用pip3一键安装:

pip3 pyspider

2.终端输入 pyspider all 启动 pyspider:

打开 Chrome,地址栏输入 localhost:5000 进入 pyspider 框架的webui界面。

点击 create ,创建 一个新的project。

3.创建完 project 后,我们便进入了代码调试界面。

这次我们要抓取的信息是猫途鹰网关于布拉格的酒店信息,把网址填入 on_star 一栏并替换掉 on_star , 点击 save 保存,点击左上角 run 选项,然后点击出现的网址右侧的箭头的选项:

便出现 index_page 的页面,我们点击 web 选项卡,出现网页内容后点击 enable css selector helper  ,选中酒店标题的超链接,这时上方便出现该标题的 CSS 选择器,把选择器内容复制粘贴替换掉右侧代码中的 a[href^="http"] ,save 后再次点击 run,但是 pyspider 的选择器并不一定准确,需要自己随时更改。这时我们便得到了我们想要的酒店标题超链接。

4.点击其中一个网页的右边的小箭头,进入详情页界面,我们要获取的信息便是详情页中的内容。类似的用 CSS 选择器获取酒店的信息,写入代码如下:

 def detail_page(self, response):url = response.urlname = response.doc('.heading_title').text()rating = response.doc('.header_rating .taLnk').text()ranking = response.doc('.prw_common_header_pop_index > span').text()location = response.doc('.colCnt3').text()phone = response.doc('.blEntry.phone > span:nth-child(2)').text()grade = response.doc('.overallRating').text()return {"url": url,"name": name,"rating": rating,"ranking": ranking,"location": location,"phone": phone,"grade": grade}

便返回酒店链接,名称,点评,排名,地址,电话,评分这七个信息,保存后点击 run,我们便能看到打印的信息。

5.存储信息到 MongoDB:

import pymongoclient = pymongo.MongoClient('localhost')
db = client['trip']def on_result(self, result):if result:self.save_to_mongo(result)def save_to_mongo(self, result):if self.db['布拉格'].insert(result):print('存储到 MongoDB 成功', result)

6.模拟翻页抓取多页面:

在 index_page(self, response) 函数中插入:

next = response.doc('.pagination .nav.next').attr.href
self.crawl(next, callback=self.index_page)

7.到这时,我们代码便写完了,退出 project ,在控制面板中 status 栏更改方式为 DEBUG ,点击 run,运行代码,Active Tasks 可以查看当前任务。

8.存储到MongoDB 的信息。

到现在,我们便完成了对猫途鹰网上布拉格酒店信息的爬取。

参考文档:http://docs.pyspider.org

代码 github 地址:https://github.com/weixuqin/PythonProjects/blob/master/pyspider/spider.py

转载于:https://www.cnblogs.com/weixuqin/p/7502240.html

利用 pyspider 框架抓取猫途鹰酒店信息相关推荐

  1. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

    scrapy中文官方文档:点击打开链接 Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘 ...

  2. python爬取去哪儿网酒店信息

    python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...

  3. 使用scrapy框架抓取手机商品信息(2)

    目录 1.模块设计 2.手机页面代码编写 2.1数据获取 2.2主页面编写 3.功能编写 3.1通过人民查询 3.2清空选项和查询函数 3.3列表相关功能定义 4.最终成功展示和总结 上一篇:使用sc ...

  4. 使用scrapy框架抓取手机商品信息(1)

    目录 1.准备工作 1.1 启动pycharm 1.2 setting.py 配置 1.3爬取页面分析 2.代码编写 2.1 爬虫代码 2.2 piplines.py代码编写 3 运行及收尾 追加 1 ...

  5. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  6. 利用Scrapy框架爬取前途无忧招聘信息

    利用Scrapy框架爬取前途无忧招聘信息 关于安装和命令使用可参考:https://docs.scrapy.org/en/1.7/intro/install.html 先创建项目和爬虫文件 分析网站 ...

  7. Python利用bs4批量抓取网页图片并下载保存至本地

    Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...

  8. python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...

    大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...

  9. 利用requests库抓取猫眼电影排行

    文章目录 1.抓取目标 2.准备工作 3.抓取分析 4.抓取首页 5.正则提取 6.写入文件 7.整合代码 8.分页爬取 9.运行结果 10.本节代码 最近刚开始了解爬虫,学习了一下基本库的使用.跟着 ...

  10. python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战

    先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...

最新文章

  1. HTTP协议之Chunked解析
  2. fiddler使用_fiddler基础使用
  3. 自学python网站推荐-给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
  4. 【死磕 Spring】—– IOC 之 Factory 实例化 bean
  5. 如何绘制caffe网络训练曲线
  6. RabbitMQ (五) 订阅者模式之分发模式 ( fanout )
  7. MsSql正反表达式
  8. 如何做嵌入式人工智能
  9. js中短路运算符 ||
  10. Java运行时出现”the serializable class drawline does not declare a static final serialversio”...
  11. java语言程序设计期中考试_《java语言程序设计》期中试卷(答案).doc
  12. android形状属性、锁屏密码、动态模糊、kotlin项目、抖音动画、记账app、视频播放器等源码...
  13. 好用的开源房产管理系统测评(附源码)
  14. 【牛客网】养兔子(斐波那契数列)
  15. 科学健脑,让IQ更上一层楼
  16. 易语言开发微信机器人插件
  17. InfluxDB+Grafana Alert功能Email+webhook
  18. docker进入容器中的方法
  19. STM32 CAN通信的学习笔记总结(从小白开始)
  20. 排列与组合中的递归策略(as3.0)

热门文章

  1. 如何获取Python字符串长度?
  2. 一维非稳态常系数热传导方程(第一类边界条件)
  3. 禁忌搜索算法原理步骤、matlab实现算例及相关代码
  4. Vulkan Loader 何时加载 ICD 驱动文件
  5. k3梅林刷官改变砖_K3 op强刷回官改变砖,TTL救砖也不行,请大神分析下是不是要换内存了...
  6. echarts geo地图示例_Echarts地图展示及属性分析
  7. mysql根据身份证计算具体的年龄
  8. FTP 连接超时解决办法
  9. 安卓手机管理_时间管理大师手机版下载-时间管理大师app下载v1.0.0 安卓最新版...
  10. adadelta算法_c – 尝试理解adadelta算法