利用 pyspider 框架抓取猫途鹰酒店信息
利用框架 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 框架抓取猫途鹰酒店信息相关推荐
- python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
scrapy中文官方文档:点击打开链接 Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘 ...
- python爬取去哪儿网酒店信息
python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...
- 使用scrapy框架抓取手机商品信息(2)
目录 1.模块设计 2.手机页面代码编写 2.1数据获取 2.2主页面编写 3.功能编写 3.1通过人民查询 3.2清空选项和查询函数 3.3列表相关功能定义 4.最终成功展示和总结 上一篇:使用sc ...
- 使用scrapy框架抓取手机商品信息(1)
目录 1.准备工作 1.1 启动pycharm 1.2 setting.py 配置 1.3爬取页面分析 2.代码编写 2.1 爬虫代码 2.2 piplines.py代码编写 3 运行及收尾 追加 1 ...
- Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息
Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...
- 利用Scrapy框架爬取前途无忧招聘信息
利用Scrapy框架爬取前途无忧招聘信息 关于安装和命令使用可参考:https://docs.scrapy.org/en/1.7/intro/install.html 先创建项目和爬虫文件 分析网站 ...
- Python利用bs4批量抓取网页图片并下载保存至本地
Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...
- python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...
大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...
- 利用requests库抓取猫眼电影排行
文章目录 1.抓取目标 2.准备工作 3.抓取分析 4.抓取首页 5.正则提取 6.写入文件 7.整合代码 8.分页爬取 9.运行结果 10.本节代码 最近刚开始了解爬虫,学习了一下基本库的使用.跟着 ...
- python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战
先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...
最新文章
- HTTP协议之Chunked解析
- fiddler使用_fiddler基础使用
- 自学python网站推荐-给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
- 【死磕 Spring】—– IOC 之 Factory 实例化 bean
- 如何绘制caffe网络训练曲线
- RabbitMQ (五) 订阅者模式之分发模式 ( fanout )
- MsSql正反表达式
- 如何做嵌入式人工智能
- js中短路运算符 ||
- Java运行时出现”the serializable class drawline does not declare a static final serialversio”...
- java语言程序设计期中考试_《java语言程序设计》期中试卷(答案).doc
- android形状属性、锁屏密码、动态模糊、kotlin项目、抖音动画、记账app、视频播放器等源码...
- 好用的开源房产管理系统测评(附源码)
- 【牛客网】养兔子(斐波那契数列)
- 科学健脑,让IQ更上一层楼
- 易语言开发微信机器人插件
- InfluxDB+Grafana Alert功能Email+webhook
- docker进入容器中的方法
- STM32 CAN通信的学习笔记总结(从小白开始)
- 排列与组合中的递归策略(as3.0)
热门文章
- 如何获取Python字符串长度?
- 一维非稳态常系数热传导方程(第一类边界条件)
- 禁忌搜索算法原理步骤、matlab实现算例及相关代码
- Vulkan Loader 何时加载 ICD 驱动文件
- k3梅林刷官改变砖_K3 op强刷回官改变砖,TTL救砖也不行,请大神分析下是不是要换内存了...
- echarts geo地图示例_Echarts地图展示及属性分析
- mysql根据身份证计算具体的年龄
- FTP 连接超时解决办法
- 安卓手机管理_时间管理大师手机版下载-时间管理大师app下载v1.0.0 安卓最新版...
- adadelta算法_c – 尝试理解adadelta算法