逆向爬虫01 requests模块

python requests模块

requests是一个python模拟浏览器发送http请求的模块

1. 使用requests模块发送get请求,获取网页源代码

import requests

url = "http://www.baidu.com"
resp = requests.get(url)
resp.encoding = "utf-8"			# 如果resp.text是乱码则需要指定编码格式,一般不是utf-8就是gbk
print(resp.text)

2. get请求可以携带参数,get请求的参数写在url的域名后面

import requests

kw = input("请输入要检索的关键字: ")
url = f"https://www.sogou.com/web?query={kw}"
headers = {
    # 添加一个请求头信息UA,如果没有请求头,目标服务器会拒绝我们访问,这是一个最简单的反爬手段,只需要在http请求头中添加浏览器信息,就可以骗过目标服务器。
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57"
}
resp = requests.get(url, headers=headers)
print(resp.text)

3. 使用requests模块发送post请求

import requests

url = "https://fanyi.baidu.com/sug"
data = {
    "kw": input("请输入一个单词")
}
resp = requests.post(url, data=data)
print(resp.text)	# 拿到json字符串
print(resp.json)	# 拿到json字典

4. 当get请求参数太多时怎么处理

import requests

url = "https://movie.douban.com/j/chart/top_list"
headers = {
    # 添加一个请求头信息UA,如果没有请求头,目标服务器会拒绝我们访问,这是一个最简单的反爬手段,只需要在http请求头中添加浏览器信息,就可以骗过目标服务器。
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57"
}
data = {
    "type": "13",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": 20
}
resp = requests.get(url, params=data, headers=headers)	# get请求会默认把params参数拼到url后面
print(resp.text)		# 拿到json字符串
print(resp.json())		# 拿到json字典
print(resp.request.url)
上一篇:记录一次python2.7.8安装mmh3和requests包中的问题与解决办法


下一篇:SimpleHTTPServer模块详解