request模块

1 概述

需要安装request模块。

pip install requests

2 GET请求

2.1 爬取百度首页

有些网站是要审核http请求头部的,所以需要构造某些http请求头部字段。

#导入网络请求的第三方模块

import requests

#通过requests模拟发送网络请求

'''
#百度返回200
r = requests.get("https://www.baidu.com")
print(r)
'''

#模拟构造headers请求头信息
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

#豆瓣网返回418,会拒绝请求,这是因为豆瓣会检查user-agent参数。除了第一个url参数,后面参数必须指明参数名称
r = requests.get("https://www.douban.com",headers=headers)
print(r)
print(r.headers)

2.2 构造带参数的请求

使用谷歌的审核元素,查看网络中的http请求参数。打开谷歌浏览器,输入需要查看的网址,右键检查。

#导入网络请求的第三方模块

import requests

#构建参数的字典
kw = {
    'wd':'python'
}

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

r = requests.get('https://www.baidu.com/s?',params=kw,headers=headers)

print(r)

#手动设置编码格式
r.encoding = 'utf-8'

#查看响应内容,reponse.text返回的是unicode格式的数据。
#print(r.text)

#查看响应内容,reponse.content返回的字节流数据
#print(r.content)

#查看完整url地址
#print(r.url)

#查看响应头部字符编码
#print(r.encoding)

#查看响应码
#print(r.status_code)

with open("mybaidu.html", mode="w", encoding='utf-8') as f:
    f.write(r.text)
print("over!!")

3 POST请求

import requests

url = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'

data = {
    'log':'ceshi',
    'pwd':'123456',
    'wp-submit':'登录',
    'redirect_to':'https://wordpress-edu-3autumn.localprod.oc.forchange.cn',
}

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

r = requests.post(url,data=data,headers=headers)

r.encoding = 'utf-8'
print(r.text)

with open("post.html", mode="w", encoding='utf-8') as f:
    f.write(r.text)

4 处理json数据

商品评论是json数据。如下:

 

import requests

#这是京东商品评论区的内容,是json格式的数据。
url = 'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1682673372857&loginType=3&uuid=122270672.386066106.1672191342.1678343802.1682673339.7&productId=11936238&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1'

print(requests.get(url).json())

 

posted @ 2023-05-01 10:30  冰雪2021  阅读(30)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css