具体实现过程请看携程热门景区评论爬取过程
- 通过获取携程首页每个省的数据获取每个省的城市,当然如果没有你也可在
city.json
添加或者删除城市。 - 获取每个城市的热门景区
- 使用线程池爬取对应景区的评论
- 爬取指定省份的所有城市
- 获取每个城市的热门景区
- 提取的评论保存为excel
- 使用线程池自定义控制爬取评论速度
- 支持使用代理和随机ua
- ...
git clone https://github.com/aglorice/CtripSpider.git
cd CtripSpider
pip install -r requirements.txt
python generate_city.py
python create_file.py
python main.py
python get_all_excel_file_data.py
🐞🐞🐞经过尝试,携程是有反爬的,建议使用代理池,本项目使用proxy_pool
config.py
# 爬取指定省份内的所有地区景点的评论数据
AREAS = ['四川']
# 爬取评论时每页的数据
PAGESIZE = 20
# 爬取评论的页数
MAX_PAGE = 300
# 是否启动代理
IS_PROXY = False
# 是否启动随机UA
IS_FAKE_USER_AGENT = False
# 是否启动验证ssl
IS_VERIFY = False
# 是否要覆盖已经保存的excel文件
IS_OVER = False
# 延时时间(城市)
CITY_SLEEP_TIME = 10
# 景区之间的休眠时间
SCENE_SLEEP_TIME = 10
# 线程池数量
POOL_NUMBER = 50
# 请求超时时间
TIME_OUT = 5
city.json
如果运行
generate_city.py
没有获取到你需要的城市,你也可以选择手动添加,只需要符合格式即可。
{
"city": [
{
"name": "四川",
"city": [
{
"name": "成都",
"url": "https://you.ctrip.com/place/chengdu104.html"
}
]
}
]
}
scene_info.json
景区信息
{
"name": "陡坡塘瀑布",
"url": "https://gs.ctrip.com/html5/you/sight/518/17686.html",
"resourceId": "17686",
"comment_total": 790,
"comment_score": 4.6,
"heat_score": "6.3",
"tag_name": [
"游山玩水"
],
"poi_Level": "",
"is_free": false
}
- 仓库发布的
CtripSpider
项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。 - 本项目遵循MIT License协议,如果本特别声明与MIT License协议有冲突之处,以本特别声明为准。
- 以任何方式查看此项目的人或直接或间接使用
CtripSpider
项目的任何脚本的使用者都应仔细阅读此声明。aglorice
保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或CtripSpider
项目,则视为您已接受此免责声明。