python开发:爬虫示例——GET和POST请求处理

一、Get请求

python 复制代码
import json
import requests

#输入示例:url='https://www.baidu.com'
#RequestHeader:F12标头-请求标头-原始-复制到这(忽略第一句)
def GetRequest(url,RequestHeader=""):
    try:
        dic={}
        RequestHeaderList = RequestHeader.strip().split("\n")
        if RequestHeader!="":
            for item in RequestHeaderList:
                if ":" in item:
                    key = item.split(":")[0].strip()
                    value = item.split(":")[1].strip()
                    dic[key] = value
        else:
            dic["User-Agent"]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0"
            #dic["Cookie"]=""
        response=requests.get(url=url,headers=dic)  ##跳过安全验证:逗号补充一个"verify=False"
        response.encoding='utf-8'  ##一般填写utf-8或者gbk
        data=response.json() #获取json字符串
        data = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)#字符串格式化为json
        #print(data)#打印Json
        response.close()
        data = json.loads(data)#json转化为py字典
        #print(data)#打印字典
        return data
    except Exception as ex:
        print(f"爬取异常,错误:{ex}")

if __name__ == '__main__':
    url = "https://xxxx/query?leftTicketDTO.train_no=6e000D402202&leftTicketDTO.train_date=2025-02-14&rand_code="
    RequestHeader="""
    GET /otn/queryTrainInfo/query?leftTicketDTO.train_no=6e000D402202&leftTicketDTO.train_date=2025-02-14&rand_code= HTTP/1.1
    Accept: */*
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Cookie: JSESSIONID=3C843B300AF2985CE9CDC31F5271E223; _jc_save_wfdc_flag=dc; _jc_save_fromStation=%u8087%u5E86%u4E1C%2CFCQ; _jc_save_toStation=%u6B66%u6C49%u4E1C%2CLFN; _jc_save_toDate=2025-01-19; BIGipServerotn=1977155850.24610.0000; BIGipServerpassport=887619850.50215.0000; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; route=9036359bb8a8a461c164a04f8f50b252; _jc_save_fromDate=2025-02-14
Host: kyfw.12306.cn
Referer: https://kyfw.12306.cn/otn/queryTrainInfo/init
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0
X-Requested-With: XMLHttpRequest
sec-ch-ua: "Not A(Brand";v="8", "Chromium";v="132", "Microsoft Edge";v="132"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
    """
    result = GetRequest(url,RequestHeader)#返回一个py字典
    dataList = result["data"]["data"]#依次选择key,就可以获得对应的值
    print(dataList[0])#尝试输出第一个值
相关推荐
青瓷程序设计9 分钟前
昆虫识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
咨询QQ2769988511 分钟前
V-REP小车项目+匹配文档,基于V-REP与MATLAB联合仿真,小车能够完成循迹、避障、走...
开发语言
咩图12 分钟前
C#创建AI项目
开发语言·人工智能·c#
豆沙沙包?29 分钟前
2025年--Lc293-784. 字母大小写全排列(回溯)--java版
java·开发语言
秋邱1 小时前
智启未来:AGI 教育融合 × 跨平台联盟 × 个性化空间,重构教育 AI 新范式开篇:一场 “教育 ×AI” 的范式革命
人工智能·python·重构·推荐算法·agi
爱吃泡芙的小白白1 小时前
vscode、anaconda、git、python配置安装(自用)
ide·git·vscode·python·anaconda·学习记录
谷隐凡二1 小时前
Kubernetes主从架构简单解析:基于Python的模拟实现
python·架构·kubernetes
老歌老听老掉牙1 小时前
Matplotlib Pyplot 数据可视化完全指南
python·信息可视化·matplotlib
Sunhen_Qiletian1 小时前
《Python开发之语言基础》第六集:操作文件
前端·数据库·python
珑墨1 小时前
【唯一随机数】如何用JavaScript的Set生成唯一的随机数?
开发语言·前端·javascript·ecmascript