笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

使用浏览器的开发人员工具进行抓取

发布者: 笨鸟自学网



这个蜘蛛程序从QuotesAPI的第一页开始。对于每个响应,我们分析 response.text 并分配给 data . 这让我们可以像在Python字典上一样对JSON对象进行操作。我们迭代 quotes 打印出 quote["text"] . 如果方便的话 has_next 元素是 true (尝试加载 quotes.toscrape.com/api/quotes?page=10 在您的浏览器或大于10的页码中,我们增加 page 属性与 yield 一个新的请求,将递增的页码插入到 url .

在更复杂的网站中,可能很难轻松地重现请求,因为我们可能需要添加 headers 或 cookies 才能让它发挥作用。在这些情况下,您可以将请求导出到 cURL 格式,方法是在网络工具中右键单击它们中的每一个,然后使用 from_curl() 方法以生成等效请求::

from scrapy import Request

request = Request.from_curl(
    "curl 'http://quotes.toscrape.com/api/quotes?page=1' -H 'User-Agent: Mozil"
    "la/5.0 (X11; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0' -H 'Acce"
    "pt: */*' -H 'Accept-Language: ca,en-US;q=0.7,en;q=0.3' --compressed -H 'X"
    "-Requested-With: XMLHttpRequest' -H 'Proxy-Authorization: Basic QFRLLTAzM"
    "zEwZTAxLTk5MWUtNDFiNC1iZWRmLTJjNGI4M2ZiNDBmNDpAVEstMDMzMTBlMDEtOTkxZS00MW"
    "I0LWJlZGYtMmM0YjgzZmI0MGY0' -H 'Connection: keep-alive' -H 'Referer: http"
    "://quotes.toscrape.com/scroll' -H 'Cache-Control: max-age=0'")

或者,如果您想知道重新创建该请求所需的参数,可以使用 curl_to_request_kwargs() 函数获取具有等效参数的字典:

scrapy.utils.curl.curl_to_request_kwargs(curl_command: strignore_unknown_options: bool = True) dict[源代码]

将cURL命令语法转换为请求kwargs。

参数
  • curl_command (str) -- 包含curl命令的字符串

  • ignore_unknown_options (bool) -- 如果为true,则当cURL选项未知时仅发出警告。否则将引发错误。(默认值:True)

返回

请求字典

注意,要将cURL命令转换为Scrapy请求,可以使用 curl2scrapy .

如你所见,在 Network -工具我们能够轻松地复制页面滚动功能的动态请求。对动态页面进行爬行可能非常困难,页面也可能非常复杂,但是(主要)归根结底就是识别正确的请求并在蜘蛛中复制它。

1234
上一篇:宽爬行下一篇:选择动态加载的内容

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-12-4 15:53 , Processed in 0.015711 second(s), 17 queries .

© 2001-2020

返回顶部