数据请求:request

数据请求

爬虫的数据请求通常是应用于抓取页面源代码,请求方式可以通过python内置模块urllib模块来获得页面源代码,但是这种方式并不常用。

request模块是一种第三方模块,通常采用这个模块来抓取页面源代码,该模块比urllib要简单,且处理各种请求方式也比较方便

模块安装

pip install requests

请求方法

请求方式分为get请求和post请求,简单区分get请求的所有参数信息都放在url内,post请求则不会。

get请求

resp = requests.get(url, params=hehe, headers=headers)

params: url参数信息。该信息见于Payload中的Query String Parameters中。

headers: 请求头信息。需要附加的请求头信息通常有User-Agent(访问来源,检测是否是正常的浏览器请求)

有时网页源代码中可能没有我们想要的信息,这种情况通常是因为页面源代码包含页面的骨架结构,真实的数据视是通过第二次以后的请求获得的。

为了获得这种数据,我们可以通过F12打开开发者工具,选择network -> XHR 查看数据,F5刷新页面即可看到请求到的数据,找到正确的请求信息后查看headers即获得url。如果url后面跟随很多参数信息,可以查看Query String Parameters,里面是字典化的参数信息

get请求实例

import requests

url = "https://movie.douban.com/j/chart/top_list"

params = {
    "type": "13",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": "20"
}

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
}

resp = requests.get(url, params=params, headers=headers)  # 处理一个小小的反爬
# print(resp.text)
print(resp.json())
print(resp.request.url)

post请求

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

data: 同get方法中的params参数。因为post请求的参数不在url内,所以附加参数的时候可以使用该参数。该信息见于Payload中的Form Data中。

post请求实例

import requests

url = "https://fanyi.baidu.com/sug"

hehe = {
    "kw": input("请输入一个单词")
}

resp = requests.post(url, data=hehe)

print(resp.text)  # 拿到的是文本字符串
print(resp.json())  # 此时拿到的直接是json数据

posted @ 2023-06-08 23:56  STONEEEEE  阅读(41)  评论(0编辑  收藏  举报