1

我正在使用 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 不同。

4

2 回答 2

3

首先登录会话,然后将其显式传递给您的 grequest,如下所示:

requests = []
for url in urls:
    request = grequests.AsyncRequest(
        method='GET', 
        url=url, 
        session=session,
    )
    requests.append(request)
于 2016-10-11T20:37:09.423 回答
3

您可以传入与标头完全相同的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)
于 2016-10-11T20:37:19.180 回答