使用request方法访问百度文库,出现"正在进行安全检测..."的提示,代码如下:
payload = {}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/119.0.0.0 Safari/537.36',
'Accept': '*/*',
'Host': 'wkrtcs.bdimg.com',
'Connection': 'keep-alive',
'Cookie': 'BAIDUID=B3E32C6BB8B4419BE6542C00F650E188:FG=1'
}
response = requests.request("GET", url, headers=headers, data=payload)
通过网上搜索的方法,进行user-agent和cookie的更换,都没有成功,看到有通过使用模拟浏览器的方式可以绕过检测,但是感觉比较麻烦,响应也比较慢,所以放弃了。
随后通过使用http.client.HTTPSConnection方法可以实现,方法很简单,响应也很快。
import http.client
conn = http.client.HTTPSConnection("wenku.baidu.com")
payload = ''
headers = {
'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
'Accept': '*/*',
'Host': 'wenku.baidu.com',
'Connection': 'keep-alive',
'Cookie': 'BAIDUID=B3E32C6BB8B4419BE6542C00F650E188:FG=1'
}
conn.request("GET", url.split('https://wenku.baidu.com')[1],
payload, headers)
res = conn.getresponse()
data = res.read().decode("utf-8")