Python入门到实战:网络请求与数据获取

一、环境准备,安装requests库

1.安装命令(终端执行)

python 复制代码
 #安装requests库
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
#(该方式是临时指定的,每次下载需要去cmd终端下载库 相对来说比较麻烦,每次添加库的时候就要去cmd终端去下载)

2.解决安装超时的问题(配置国内镜像源)

python 复制代码
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
说明:默认连接Python官方仓库,国内镜像源(如清华源)可提升下载速度。

二、基本用法:发起GET请求

1.导入模块与基础请求

python 复制代码
import requests #导入requests库
# 在要获取数据的浏览器页面里,找到目标URL(以疾病查询页面为例),键盘按下Fn+F12,查看是什么请求方式
url = 'https://www.youlai.cn/dise'
# 发起get请求,获取响应对象 将获取到的响应对象的结果给到变量res
res = requests.get(url) 
# 打印响应内容(如果响应结果是HTML文本内容)
print("响应内容:",res.text)

2.处理中文乱码问题

python 复制代码
import requests
url = 'https://www.tjwenming.cn/'
res = requests.get(url)
# 手动指定编码(根据目标网页的meta标签设置,此处以gb2312为例)
res.encoding = 'gb2312'
print('处理后的中午内容:',res.text)

调用encoding前 调用encoding后

关键步骤:
  • 检查网页源码中的<metacharset="xxx">标签,获取编码格式(如utf-8、gbk、gb2312)。
  • 通过response.encoding设置编码,确保中文正常显示。

三、带参数的GET请求

1.参数传递方式

方式一:URL拼接参数(直接在URL中携带参数)

python 复制代码
import requests
#包含参数的完整URL(从浏览器复制)
url='https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1763364793381&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=2,3&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn'
res = requests.get(url)
print(res.text)

方式二:通过params参数传递

python 复制代码
url = 'https://careers.tencent.com/tencentcareer/api/post/Query' # 注意写基础的URL 不带后面的请求参数
params = { # 将请求参数通过字典的形式存起来,给到params
    'timestamp': 1763364793381,
    'ountryId': '',
    'cityId': '',
    'bgIds': '',
    'productId': '',
    'categoryId': '',
    'parentCategoryId': '',
    'attrId': '2,3', # 注意参数为字符串类型
    'keyword': '',
    'pageIndex': 1,
    'pageSize': 10,
    'language': 'zh-cn',
    'area': 'cn'
}
# 发起请求时传递params参数
res = requests.get(url,params=params)
print(res.text)

四、获取二进制数据(图片、视频等)

:下载网络图片并保存

python 复制代码
import requests
url = 'http://pic.enorth.com.cn/005/026/920/00502692031_21660ab6.jpg'
res = requests.get(url)
#如果请求网址对应的数据为图片视频音频
#获取数据的方式:响应对象.content--->字节数据
res_img = res.content 
with open('1.jpg','wb') as f:
    f.write(res_img)
关键点:
  • 二进制数据通过response.content获取,而非text。
  • 文件扩展名需与内容类型匹配(如.gif、.mp4、.jpg)。
相关推荐
破茧蝴蝶2 小时前
Python分布式爬虫完整教程
开发语言·python
benchmark_cc2 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
凤山老林2 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
小白快快跑哦2 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
Thinker QAQ2 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
道满科技3 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
霸道流氓气质4 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
ch6235 小时前
《AI 辅助编程实战:从零跑通一个 Excel 报表生成脚本的踩坑与复盘》
人工智能·python
import_random6 小时前
[python]conda和pip(区别和联系2)
python
Aurorar0rua6 小时前
CS50 x 2024 Notes Python - 01
开发语言·python·学习方法