基于Playwright+Asyncio爬取携程网的机票数据
本项目基于Playwright+Asyncio实现对携程网的机票数据的爬取。
基本流程
1、Playwright启动浏览器,打开携程网机票数据页面。
2、启用回调函数监听后台返回的机票数据。
3、对机票航班数据进行处理、校验.
4、使用Peewee进行数据建模,生成 Mysql 数据表,数据写入数据库.
目录结构
启动项目
1、配置
创建 Mysql 数据库,数据库名为
ctriptravles
修改项目中
settings/settings.yaml
的 Mysql 用户密码配置
settings/settings.yaml
中的threadNum可以配置并发的数量。
2、启动
1、将
CtripTravels.py
文件中的__EXECUTABLE_PATH__
修改为本机google客户端exe的路径。
2、运行
function.nextRoute.py
的createRoute()
函数,生成路线文件。
3、运行
main.py
文件,即可启动爬虫。
3、注意事项
1、携程网的反爬机制比较强,如果你不用代理,那你的IP很快就会被封,所有路线都会提示无法查询了。
建议配置settings
下的proxy.json
文件,填写你自己的代理。
2、如果配置了代理文件,记得要把
CtripTravels.py
文件中的pw.chromium.launch
中的proxy
参数注释去掉。
3、由于生成的路线文件开头那几个路线的起点终点不太热门,航班比较少,你可以仿照步骤2.2生成的文件数据格式,先添加几个热门城市试试。
结果数据库
1 航班表
2 价格表
3 中转表
项目地址
https://github.com/lisongxi/CtripTravels
基于Playwright+Asyncio爬取携程网的机票数据相关推荐
- 基于Webmagic的爬取B站用户数据的爬虫
基于Webmagic的爬取B站用户数据的爬虫 github: https://github.com/Al-assad/Spider-bilibiliUser-active 数据示例样本:http:// ...
- python爬取携程网航班机票信息并存储到数据库中,2020年最新版本
我们先看一下携程网的信息 从以上我们可以获取两个信息 1.我是从上海到成都的 2.7条航班信息 教你如何爬虫 我不教静态网页的爬虫,因为太简单了:我们直接上手携程网 我们到这个上述这个页面以后,我推荐 ...
- 高性能爬取携程网景区评论数据
昨天花了一天时间写的,改来改去,不断提升性能,终于可以把代码放出来了,如果发现服务域名无效,只需要更改Origin为http形式就行. import csvimport requests from b ...
- 多线程爬取携程网酒店数据,星级数据和经纬度
下面展示一些 内联代码片. 多线程爬取携程网酒店星级数据和经纬度 CITY_CODE={7551:"商洛",7587:"吴忠市",3222:"平顶山市 ...
- python 爬虫,获取携程网站机票数据
爬取携程机票数据 from prettytable import PrettyTable import requests import jsondef xiecheng(dcity, acity, d ...
- python爬取携程机票并发送过滤后的机票信息到指定邮箱
0x0 前言 在疫情发生之前,在知乎上刷到一个回答,说是用服务器实现一个自动爬取机票并将过滤后的机票信息发送到自己的邮箱中,感觉十分有趣.由于疫情原因无法返校,加上家和学校相隔接近3000公里,再加上 ...
- scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容
python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...
- 基于搜狗微信爬取微信公众号的文章
1. 引入模块和函数 from requests_html import HTMLSession from urllib.parse import urlparse, parse_qs import ...
- 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云
基于Scrapy框架爬取豆瓣<复联4>影评,并生成词云 1. 介绍及开发环境 2. 爬虫实现 2.1 新建项目 2.2 构造请求 2.3 提取信息 2.4 数据存储 2.4 运行结果 3. ...
最新文章
- 大厂 CEO 一年薪酬拿多少?
- live writer 51cto博客设置
- 翻动100万级的数据
- 【深度学习】一文详解RNN及股票预测实战(Python)!
- Go的50度灰:Golang新开发者要注意的陷阱和常见错误
- 云原生 - Istio可观察性之监控(四)
- concurrent模块的使用
- 重磅,企业实施大数据的路径
- 基于微服务架构的门户平台改造的研究
- 论文笔记:Multilingual Multimodal Pre-training for Zero-Shot Cross-Lingual Transfer of Vision-Language Mo
- mysql存储过程成绩等级_MySQL使用存储过程创建百万级别测试数据
- 产品经理的核心竞争力
- Netty傻瓜教程(四):bossGroup, workGroup?
- R语言报错:Error in data[[rowvar]] : attempt to select less than one element in get1index
- Padding Oracle攻击(POODLE)技术分析
- 导致页面布局混乱的几个元凶
- 2021年度济南职工医保门统定点医疗机构名单
- java reference详解_你不可不知的Java引用类型之——Reference源码解析
- 新书上市|一位家长的忠告:长大后不成才的孩子,父母都忽视了这个点!
- 思科CCNA认证课程内容
热门文章
- Linux下游戏大作赏析
- 数据传输速率Data Rate与LCD显示的关系
- Pepper初级教程:第三章 Choregraphe用法
- 计算机上的刷新快捷键,电脑刷新快捷键是哪个(必看电脑键盘操作技巧)
- java: 错误:无效的源发行版
- 【ios开发Xcode】实现登录注册
- matlab 向量方程组,Matlab 线性代数(二)--向量组的线性相关性及方程组的特解
- LCG(线性同余生成器)
- 实施工程师的发展前景_北京孚惠教育:注册安全工程师七大专业,如何选择最适合自己的...
- win10为右键菜单添加“在此处打开命令提示符(管理员)”选项