使用 grequests 发布和获取
POSTing and GETing with grequests
我正在使用 grequests 来更快地对网站进行 scape。但是,我还需要登录该网站。
之前(仅使用请求)我可以做:
其中 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(s) 不同。
首先登录会话,然后将其显式传递给您的 grequest,如下所示:
requests = []
for url in urls:
request = grequests.AsyncRequest(
method='GET',
url=url,
session=session,
)
requests.append(request)
您可以传入与 headers 完全相同的 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)
我正在使用 grequests 来更快地对网站进行 scape。但是,我还需要登录该网站。
之前(仅使用请求)我可以做:
其中 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(s) 不同。
首先登录会话,然后将其显式传递给您的 grequest,如下所示:
requests = []
for url in urls:
request = grequests.AsyncRequest(
method='GET',
url=url,
session=session,
)
requests.append(request)
您可以传入与 headers 完全相同的 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)