前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

喜欢的朋友欢迎关注小编

当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格、开放时间、用户的评论等。

本文基于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函数,如下图所示。

效果展示

点击绿色按钮运行,将结果显示在控制台,如下图所示。输入你要爬取的页数。

最新文章

  1. iOS逆向工程之App脱壳
  2. 浅谈php生成静态页面
  3. 阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性
  4. Android前端人员与后台开发的撕逼(一)
  5. liunx 文件相关
  6. asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置
  7. 追踪CM_CONTROLCHANGE消息的产生和执行过程,可以较好的领会VCL的思想(就是到处通知,但耦合性很弱)
  8. error userinfo error pos 5 友盟分享 网页分享(无新浪微博客户端)
  9. Java 学习 第三篇;面向对象
  10. 【学习】ie-css3.htc---让ie8以下支持css3
  11. Linux下安装mysql(yum和源码编译两种方式)
  12. el内部支持运算表达式,外部不支持
  13. JS-给对象动态添加属性
  14. E:could not get lock /var/lib/dpkg/lock -ope
  15. May 26. 2018 Week 21st Saturday
  16. python3实现感知器,简单神经网络
  17. 再谈 linux 的sed用法
  18. 通过Heketi管理GlusterFS为K8S集群提供持久化存储
  19. SSh on Ubuntu
  20. Json解析数据的简单使用

热门文章

  1. CentOS 7.1 图形化安装
  2. router-link传参
  3. PHP+Apache+MySQL+phpMyAdmin安装和配置
  4. kali下一些代理工具的简单描述
  5. adb常用命令食用方法
  6. 解决使用IDEA启动Tomcat成功但localhost:8080无法访问的问题
  7. 第3章 衡量线性回归的指标:MSE,RMSE,MAE
  8. CSS基础选择器总结
  9. 【软工】[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE
  10. Docker 入门:镜像