python连接mysql,并整理(去哪儿网)页面数据到表

##引入requests/pymysql模块

本地安装mysql数据库,安装图形化工具navicat

python 复制代码
import requests
from pymysql import Connect

#创建客户端连接信息
client = Connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='',
)
#创建游标
cursor = client.cursor()
cursor.execute('create database if not exists qunar')
cursor.execute('use qunar')
cursor.execute('create table if not exists qunar_hotel('
               'id int primary key auto_increment,'
               'name char(100),'
               'city_name char(30),'
               'price int,'
               'score int,'
               'type char(60),'
               'address char(255),'
               'comment char(60))')

#引入城市列表
city_url_list = [{
    "name": "北京",
    "url": "beijing_city"
}, {
    "name": "成都",
    "url": "chengdu"
}, {
    "name": "广州",
    "url": "guangzhou"
}, {
    "name": "杭州",
    "url": "hangzhou"
}, {
    "name": "昆明",
    "url": "kunming"
}, {
    "name": "青岛",
    "url": "qingdao"
}, {
    "name": "上海",
    "url": "shanghai_city"
}, {
    "name": "深圳",
    "url": "shenzhen"
}, {
    "name": "西安",
    "url": "xian"
}, {
    "name": "重庆",
    "url": "chongqing_city"
}, {
    "name": "北海",
    "url": "beihai"
}, {
    "name": "大理",
    "url": "dali"
}, {
    "name": "大连",
    "url": "dalian"
}, {
    "name": "东莞",
    "url": "dongguan"
}, {
    "name": "佛山",
    "url": "foshan"
}, {
    "name": "福州",
    "url": "fuzhou_fujian"
}, {
    "name": "贵阳",
    "url": "guiyang"
}, {
    "name": "桂林",
    "url": "guilin"
}, {
    "name": "哈尔滨",
    "url": "haerbin"
}, {
    "name": "海口",
    "url": "haikou"
}, {
    "name": "合肥",
    "url": "hefei"
}, {
    "name": "惠州",
    "url": "huizhou_guangdong"
}, {
    "name": "济南",
    "url": "jinan"
}, {
    "name": "嘉兴",
    "url": "jiaxing"
}, {
    "name": "兰州",
    "url": "lanzhou"
}, {
    "name": "丽江",
    "url": "lijiang"
}, {
    "name": "南昌",
    "url": "nanchang"
}, {
    "name": "南京",
    "url": "nanjing"
}, {
    "name": "南宁",
    "url": "nanning"
}, {
    "name": "宁波",
    "url": "ningbo"
}, {
    "name": "黔东南",
    "url": "qiandongnan"
}, {
    "name": "秦皇岛",
    "url": "qinhuangdao"
}, {
    "name": "泉州",
    "url": "quanzhou"
}, {
    "name": "三亚",
    "url": "sanya"
}, {
    "name": "厦门",
    "url": "xiamen"
}, {
    "name": "沈阳",
    "url": "shenyang"
}, {
    "name": "石家庄",
    "url": "shijiazhuang"
}, {
    "name": "苏州",
    "url": "suzhou_jiangsu"
}, {
    "name": "太原",
    "url": "taiyuan"
}, {
    "name": "天津",
    "url": "tianjin_city"
}, {
    "name": "威海",
    "url": "weihai"
}, {
    "name": "温州",
    "url": "wenzhou"
}, {
    "name": "乌鲁木齐",
    "url": "wulumuqi"
}, {
    "name": "无锡",
    "url": "wuxi"
}, {
    "name": "武汉",
    "url": "wuhan"
}, {
    "name": "西宁",
    "url": "xining"
}, {
    "name": "烟台",
    "url": "yantai"
}, {
    "name": "长沙",
    "url": "changsha"
}, {
    "name": "郑州",
    "url": "zhengzhou"
}, {
    "name": "珠海",
    "url": "zhuhai"
}]

for city_dict in city_url_list[:10]:
    url = f'https://hotel.qunar.com/napi/hotHotelList?size=150&city={city_dict["url"]}'
    headers = {
       'user-agent':'https://hotel.qunar.com/napi/hotHotelList?size=150&city={city_dict["url"]}'
    }
    res = requests.get(url,headers=headers)
    res
    Data = tuple(map(lambda x:(x.get('name'),
                               x.get('cityName'),
                               eval(x.get('price')),
                               eval(x.get('score')),
                               x.get('hotelCategory') if x.get('hotelCategory') else 'null',
                               x.get('locationInfo'),
                               x.get('commentDesc') if x.get('commentDesc') else 'null',
                               ),res.json()))

    insert_sql = 'insert into qunar_hotel(name,city_name,price,score,type,address,comment) values(%s,%s,%s,%s,%s,%s,%s)'
    cursor.executemany(insert_sql,Data)

    # 提交事务
    client.commit()
else:
    cursor.close()
    client.close()

运行结果:

相关推荐
l1258654 分钟前
# LangGraph 核心架构入门:State、Node、Edge 与 Reducer 的工程理解
大数据·人工智能·python·架构·langchain·edge
qq_3391911428 分钟前
mysql磁盘占用排查,mysql存储空间占比统计,mysql判断哪张表占用磁盘空间大
数据库·mysql
圆圆讲门店32 分钟前
实体获客团队|基础概念与核心要点整理
人工智能·python
砚底藏山河1 小时前
【量化纯GET实战 #04】批量快照:一次 HTTP GET 取多只股票
java·python·金融·eclipse
烂蜻蜓1 小时前
Flask入门教程(九):模板渲染——用Jinja2构建动态页面
后端·python·flask
2601_966871401 小时前
AE影视后期特效-遮罩/调色/抠像/MG动画/3D/Vlog制作(完结)jzit
python
circuitsosk1 小时前
大模型本体安全防护实践:提示词注入防御、输出合规过滤与敏感信息脱敏
python·安全·数据脱敏·纵深防御·提示词注入·llmsecurity
工业一体机老司机2 小时前
Python实现工业一体机Modbus-TCP通信-从协议解析到多设备轮询实战
开发语言·python·tcp/ip
2401_885885042 小时前
国际语音php接口代码示例:PHP使用cURL快速调用语音发送API
android·开发语言·前端·人工智能·python·php·语音识别
EW Frontier2 小时前
基于 Python + NumPy 的雷达信号处理仿真平台设计与实现——从 LFM 波形到 CFAR 检测的完整信号链
python·雷达信号处理·cfar\]·mti·mtd