1. 猿人学第17题题解
这道题主要考察的是对于http2.0请求的爬取措施。 现在http2.0请求使用requests可以请求成功,但是对于一些反爬手段强的反而requests无法满足需求。此时就需要用到httpx或hyper这类支持http2的库。我这里使用的是httpx。
代码贴在如下:
import httpx
url = "https://match.yuanrenxue.com/api/match/3?page=1"
headers = {
'authority': 'match.yuanrenxue.com',
'cookie': 'sessionid=xxxx',
'referer': 'https://match.yuanrenxue.com/match/3',
'user-agent': 'yuanrenxue.project',
}
client = httpx.Client(http2=True)
resp = client.get(url=url, headers=headers)
print(resp.status_code)
print(resp.text)
第二种用法:
import httpx
url = "https://match.yuanrenxue.com/api/match/3?page=1"
headers = {
'authority': 'match.yuanrenxue.com',
'cookie': 'sessionid=6700jbpbvuy9grrhknysq5wwp4h9z8l2',
'referer': 'https://match.yuanrenxue.com/match/3',
'user-agent': 'yuanrenxue.project',
}
with httpx.Client(headers=headers,http2=True) as client:
response = client.get(url)
result = response.json()
print(result)
拿下来的json数据,对其进行相应的解析即可
|