如何快速的找到好玩的旅游景点信息?Python爬虫帮你轻松解决
2024-08-29 03:25:58
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
喜欢的朋友欢迎关注小编
当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格、开放时间、用户的评论等。
本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息。
项目目标
获取网站的景点名称、开放时间、精彩点评、价格等信息。
涉及的库和网站
先列出网址,如下所示:
网址:https://go.hao123.com/ticket?city=%E5%B9%BF%E5%B7%9E&theme=all&pn=1
网址city=%E5%B9%BF%E5%B7%9E指的是广州这个城市、pn指的是页数。
需要用到的库:requests、lxml、pprint
具体实现
1. 导入我们需要的库
import requests
from lxml import etree
from pprint import pprint
2. 导入库之后,我们定义一个class类,然后定义一个init方法继承self再定义一个主函数main,定义一个init方法:首先准备url地址,headers,如下图所示。
3. 定义一个请求函数,获取响应数据函数:
4. 请求到数据后,我们需要把这个数据进行解析:
5. 获取景点名称二级页面链接:使用xpath查找链接路径用谷歌浏览器选择开发者工具或者按F12,选择Elements按数字1、2操作找到旅游景点名称二级页面链接。
6. 根据分析,我们可以撸下代码。
7. 获取二级页面链接后,发送请求获取响应,解析数据。定义一个字典,保存景点名称、开放时间、精彩点评、价格。使用判断语句判断里面内容是否是空的。
8. 最后定义一个main函数,如下图所示。
效果展示
点击绿色按钮运行,将结果显示在控制台,如下图所示。输入你要爬取的页数。
最新文章
- iOS逆向工程之App脱壳
- 浅谈php生成静态页面
- 阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性
- Android前端人员与后台开发的撕逼(一)
- liunx 文件相关
- asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置
- 追踪CM_CONTROLCHANGE消息的产生和执行过程,可以较好的领会VCL的思想(就是到处通知,但耦合性很弱)
- error userinfo error pos 5 友盟分享 网页分享(无新浪微博客户端)
- Java 学习 第三篇;面向对象
- 【学习】ie-css3.htc---让ie8以下支持css3
- Linux下安装mysql(yum和源码编译两种方式)
- el内部支持运算表达式,外部不支持
- JS-给对象动态添加属性
- E:could not get lock /var/lib/dpkg/lock -ope
- May 26. 2018 Week 21st Saturday
- python3实现感知器,简单神经网络
- 再谈 linux 的sed用法
- 通过Heketi管理GlusterFS为K8S集群提供持久化存储
- SSh on Ubuntu
- Json解析数据的简单使用