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

 找回密码
 立即注册

选择动态加载的内容

发布者: 笨鸟自学网

某些网页在Web浏览器中加载时会显示所需的数据。但是,当您使用scrappy下载它们时,您无法使用 selectors .

当这种情况发生时,建议的方法是 find the data source 从中提取数据。

如果您未能做到这一点,并且仍然可以通过 DOM 从Web浏览器中,请参见 预渲染JavaScript .

查找数据源

要提取所需的数据,必须首先找到其源位置。

如果数据是非基于文本的格式,如图像或PDF文档,请使用 network tool 找到相应的请求,以及 reproduce it .

如果您的Web浏览器允许您选择所需的数据作为文本,则数据可以在嵌入的javascript代码中定义,也可以从基于文本格式的外部资源加载。

在这种情况下,您可以使用类似 wgrep 以查找该资源的URL。

如果数据原来来自原始URL本身,则必须 inspect the source code of the webpage 以确定数据的位置。

如果数据来自不同的URL,则需要 reproduce the corresponding request .

检查网页的源代码

有时您需要检查网页的源代码(而不是 DOM )确定所需数据的位置。

使用Scrapy's fetch 命令下载Scrapy看到的网页内容:

scrapy fetch --nolog https://example.com > response.html

如果所需数据位于 <script/> 元素,请参见 分析javascript代码 .

如果你找不到想要的数据,首先要确保它不仅仅是垃圾:用HTTP客户端下载网页,比如 curl 或 wget 看看这些信息是否可以在他们得到的响应中找到。

如果他们得到了所需数据的响应,请修改您的Scrapy Request 以匹配另一个HTTP客户端。例如,尝试使用相同的用户代理字符串 (USER_AGENT )或相同 headers 。

如果他们也得到了没有所需数据的响应,那么您需要采取措施使您的请求更类似于Web浏览器的请求。见 复制请求 .


1234下一页

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

GMT+8, 2024-7-27 13:42 , Processed in 0.074961 second(s), 17 queries .

© 2001-2020

返回顶部