爬取景区源码

news/2024/10/18 16:51:23/
import requests
import json
import csvpostUrl = "https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList"# 将景点poiId和名称添加到此处
urls = [["75487323","凤凰雾涧江景民宿"],["11052220","古童临江客栈"],["55918524","凤凰等你来三生三世艺术民宿"],["15911807","凤凰虎耳草屋江景民宿"],["42687808","凤凰素履莲花 璞树漫居江景度假民宿"],["66065748","凤凰金水岸 慕名主题文创体验民宿"],["64225492","凤凰雪晴集 人文半山民宿"],["7078046","等你来 倾城轻奢民宿"],["6842040","凤凰沱水人家精品民宿"],["17541312","凤凰云桥自在江景精品民宿"],
]
# urls = [
#     # ['76865', '星海广场'],
#     ['75628', '棒棰岛'],
#     ['75633', '大连森林动物园'],
#     ['60514877', '三寰牧场'],
#     ['75635', '劳动公园'],
#     ['23035466', '东港音乐喷泉广场'],
#     ['79494', '海之韵广场'],
#     ['87618', '金石滩度假区'],
#     ['87748', '滨海路'],
#     ['87647', '滨海国家地质公园'],
#     ['24845945', '莲花山观景台'],
#     ['92196', '白玉山景区'],
#     ['13301914', '大连天门山国家森林公园'],
# ]for id in urls:print("正在爬取景点:", id[1])# 通过返回值判断总评论数,每页9条,计算出总页数,对大于2000条的数据只爬取两千条data_pre = {"arg": {"channelType": 2,"collapseType": 0,"commentTagId": 0,"pageIndex": 1,"pageSize": 10,"poiId": id[0],"sourceType": 1,"sortType": 3,"starType": 0},"head": {"cid": "09031069112760102754","ctok": "","cver": "1.0","lang": "01","sid": "8888","syscode": "09","auth": "","xsid": "","extension": []}}html = requests.post(postUrl, data=json.dumps(data_pre)).texthtml = json.loads(html)# 确定总页数总页数total_page = int(html['result']['totalCount'] / 10)if total_page > 300:total_page = 300# 遍历查询评论print("总页数:", total_page, "爬取中")# 创建写入csv文件path = './dalian/' + str(id[1]) + '.csv'xuhao = 0with open(path, 'w', newline='', encoding='utf-8') as f:file = csv.writer(f)file.writerow(['序号', '景区ID', '景区名称', '评论'])for page in range(1, int(total_page) + 1):data = {"arg": {"channelType": 2,"collapseType": 0,"commentTagId": 0,"pageIndex": page,"pageSize": 10,"poiId": id[0],"sourceType": 1,"sortType": 3,"starType": 0},"head": {"cid": "09031069112760102754","ctok": "","cver": "1.0","lang": "01","sid": "8888","syscode": "09","auth": "","xsid": "","extension": []}}html = requests.post(postUrl, data=json.dumps(data)).texthtml = json.loads(html)# 获取评论for j in range(10):result = html['result']['items'][j]['content']file.writerow([xuhao, id[0], id[1], result])print([xuhao, id[0], id[1], result])xuhao += 1print(id[1], "爬取完成")

http://www.ppmy.cn/news/58050.html

相关文章

【容器化应用程序设计和开发】2.2 容器编排和Kubernetes调度

往期回顾: 第一章:【云原生概念和技术】 第二章:2.1 容器化基础知识和Docker容器 第二章:2.2 Dockerfile 的编写和最佳实践 容器化应用程序设计和开发 2.3 容器编排和Kubernetes调度 2.3 容器编排和Kubernetes调度 容器编排是…

超全!超详细!2023大 厂 前端面试题手册

HTML、CSS、浏览器 相关 ................................................................... 1 1.网络中使用最多的图片格式有哪些 ............................................................................................. 1 2. 请简述 css 盒子模型 ........…

laravel-admin安装wang-Editor3之坑

先说坑,一开始不知道哪个步骤配置问题,在富文本中上传图片可以正常传到服务器,但是前端无法回显,一直提示图片上传失败,在admin.php的wang-editor配置项中开启debug后,在浏览器console中也只是显示什么unde…

k8s之审计日志

一、为什么要有审计 Kube-Apiserver 的负载突然变高,大量访问失败,集群中到底发生了什么? 当集群发生问题时,这是Metric一般会失效,为了排查以上问题,k8s 提供了两种原生的日志形式——审计(A…

关于C#中委托的思考与实例

委托的定义:委托是持有一个或多个方法的对象。 delegate void MyDel(int value);//声明委托类型 MyDel del;//声明委托变量委托的实质:委托的实质其实也是类,同样继承System.Object,这也是委托无论在类内还是类外都能被定义的原因…

【计算几何】判断一条线段和一段圆弧是否相交 C++代码实现

文章目录 一、前言二、线段与圆弧的代码表示2.1 线段代码表示2.2 圆弧代码表示 三、实现思路及数学推导3.1 第一步(粗略判断)3.2 第二步3.3 第三步 四、完整代码五、效果展示 一、前言 最近做项目,需要判断一条线段是否和一段圆弧相交&#…

MySQL库和表

MySQL库操作 创建数据库 语法 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name说明: 大写的表示关键字[ ]是可选项CHARACTER…

win10远程桌面控制Ubuntu服务器 - 内网穿透实现公网远程

文章目录 前言视频教程1. ubuntu安装XRDP2.局域网测试连接3. Ubuntu安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 转载自远程穿透文章:Windows通过RDP异地远程桌面Ubuntu【内网穿透】 前言 XRDP是一种开源工具,它允许用户通过Windows…