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

devtools/2025/2/7 8:16:45/

一、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] = valueelse: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或者gbkdata=response.json() #获取json字符串data = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)#字符串格式化为json#print(data)#打印Jsonresponse.close()data = json.loads(data)#json转化为py字典#print(data)#打印字典return dataexcept 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.1Accept: */*
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])#尝试输出第一个值


http://www.ppmy.cn/devtools/156758.html

相关文章

产品经理的人工智能课 02 - 自然语言处理

产品经理的人工智能课 02 - 自然语言处理 1 自然语言处理是什么2 一个 NLP 算法的例子——n-gram 模型3 预处理与重要概念3.1 分词 Token3.2 词向量化表示与 Word2Vec 4 与大语言模型的交互过程参考链接 大语言模型(Large Language Models, LLMs)是自然语…

路由表转发表考研知识点

一、路由表(Routing Table) 1. 定义与作用 路由表是网络层(第三层)的核心数据结构,用于存储路径选择信息,决定数据包从源到目的地的传输路径。 核心功能:根据目的IP地址,选择最佳下…

如何打开vscode系统用户全局配置的settings.json

📌 settings.json 的作用 settings.json 是 Visual Studio Code(VS Code) 的用户配置文件,它存储了 编辑器的个性化设置,包括界面布局、代码格式化、扩展插件、快捷键等,是用户全局配置(影响所有…

《Hands-On Machine Learning with Scikit-Learn, Keras TensorFlow》第一章读书笔记

第一部分:理论篇 1. 什么是机器学习? 核心定义 机器学习是让计算机从数据中学习的科学,而无需显式编程。 经典定义 Arthur Samuel (1959): “让计算机无需明确编程就具备学习能力” Tom Mitchell 的工程定义: “如果一个程序通过经验 E 在某…

jvm知识点

一、jvm组成部分 程序计数器 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。 作用 PC寄存器用来存储指向下一条指令…

【OpenGL】OpenGL游戏案例(二)

文章目录 特殊效果数据结构生成逻辑更新逻辑 文本渲染类结构构造函数加载函数渲染函数 特殊效果 为提高游戏的趣味性,在游戏中提供了六种特殊效果。 数据结构 PowerUp 类只存储存活数据,实际逻辑在游戏代码中通过Type字段来区分执行 class PowerUp …

Unity中的虚拟相机(Cinemachine)

Unity Cinemachine详解 什么是Cinemachine Cinemachine是Unity官方推出的智能相机系统,它提供了一套完整的工具来创建复杂的相机运动和行为,而无需编写大量代码。它能够大大简化相机管理,提高游戏开发效率。 Cinemachine的主要组件 1. Vi…

Java面试题及答案整理( 2022最新版,持续更新)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ Java面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编…