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)

请求可以是 strHttpRequest ,如果是 str 则认为提供的是 GET 请求的URL。

返回结果是一个 list ,和发起的请求一一对应,可能是 HttpResponseException 。 因此可以先通过 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