PYTHON NOTES · 13
通过网络请求获取动态与静态资源,建立数据采集基础。
- HTTP
- 数据获取
Python 网络请求与数据获取
通过网络请求获取动态与静态资源,建立数据采集基础。
1.网络请求
#网络请求:使用python代码发出网络请求获取数据
#httpx
#调httpx包
import httpx
#创建用于网络请求的对象
client=httpx.Client()
#请求ollama服务器,获取数据
res=client.get("http://127.0.0.1:11434")
#获取响应数据
print(res.text)
2.获取动态资源
#获取百度图片
#步骤
#1.找获取图片的url(百度搜索图片)
import time
import httpx
#2.创建请求连接客户端
client=httpx.Client()
#3.发送请求,调用url
word=input("请输入图片名称:")
info=client.get(url="https://image.baidu.com/search/acjson?tn=resultjson_com&word="
f"{word}&ie=utf-8&fp=result&fr=&ala=0&applid=8609304959642546521&pn=30&rn=30&nojc=0&gsm=1e&newReq=1",
headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Referer': 'https://image.baidu.com/',
'Connection': 'keep-alive',})
#info.json(保留字典格式)
#4.获取图片信息的集合
for i in info.json()["data"]["images"][:5]:
#图片地址
# i["thumbURL"]
image=client.get(i["thumburl"])
#5.调用图片地址获取图片内容
# image.content
#6把图片内容写入自己的文件夹
with open(file=f"images/{time.time()}.jpg",
mode="wb") as f:
f.write(image.content)
3.获取静态资源
#学校官网图片
#步骤
#1.先请求访问连接
import re
import httpx
client=httpx.Client()
info=client.get(url="https://www.xiyou.edu.cn/")
#2.拿到响应的文本格式
# print(info.text)
text=info.text
# <img src="newWeb/images/foot_ewm_30.png" border="0" width="100" height="100">
#3.用正则表达式找出图片列表
img_list= re.findall(r'<img src="(.*?)".*">',text)
print(img_list)
#把读取的照片保存到本地
for i in img_list:
image=client.get("https://www.xiyou.edu.cn/"+i)
#处理照片的命名
with open(file=f"xupt/{i.split('/')[-1]}",mode="wb") as f:
f.write(image.content)