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