Make Requests¶
如果我们只是想下载URL对应的网页,但又不想写爬虫这么复杂的东西,那么我们可以直接借助 make_requests()
函数发起请求并获取结果。
from xpaw import make_requests, HttpRequest
if __name__ == '__main__':
requests = ['http://unknown', 'http://python.org', HttpRequest('http://python.org')]
results = make_requests(requests)
print(results)
请求可以是 str
或 HttpRequest
,如果是 str
则认为提供的是 GET
请求的URL。
返回结果是一个 list
,和发起的请求一一对应,可能是 HttpResponse
或 Exception
。
因此可以先通过 isinstance
判断是否是正常返回的结果 HttpResponse
。
其次,如果是 Exception
,则表示请求出现了错误,例如常见的有 ClientError
, HttpError
(非2xx的HTTP状态码)。
使用 make_requests()
可以实现请求的并发执行,并提供了错误重试等诸多可选功能。
Note
make_requests()
在 Spider
中使用会报错。
在 Spider
中处理请求的过程已经是并发的,因而也无需使用 make_requests()
。
-
xpaw.run.
make_requests
(requests, **kwargs)¶ Parameters: - requests (str or
HttpRequest
) – 请求列表 - kwargs – 相关配置参数,详见 Settings
- requests (str or