我正在使用grequests更快地浏览网站。但是,我还需要登录该网站。
之前(只是使用请求)我可以这样做:
其中headers
是我的User-Agent
。
with requests.Session() as s:
s.headers.update(headers)
s.post(loginURL, files = data)
s.get(scrapeURL)
使用grequests
我只能通过以下方式传递headers
:
rs = (grequests.get(u, headers=header) for u in urls)
response = grequests.map(rs)
有没有同时做POST
所以我可以登录?登录URL与我正在废弃的URL不同。
答案 0 :(得分:2)
首先登录会话,然后将其明确传递给您的grequest:
requests = []
for url in urls:
request = grequests.AsyncRequest(
method='GET',
url=url,
session=session,
)
requests.append(request)
答案 1 :(得分:2)
您可以传递与标题完全相同的 Session 对象:
with requests.Session() as s:
s.headers.update(headers)
s.post(loginURL, files = data)
s.get(scrapeURL)
rs = (grequests.get(u, headers=header, session=s) for u in urls)
response = grequests.map(rs)