某些网页在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 scrapy fetch --nolog https://example.com > response.html
如果所需数据位于 如果你找不到想要的数据,首先要确保它不仅仅是垃圾:用HTTP客户端下载网页,比如 curl 或 wget 看看这些信息是否可以在他们得到的响应中找到。 如果他们得到了所需数据的响应,请修改您的Scrapy 如果他们也得到了没有所需数据的响应,那么您需要采取措施使您的请求更类似于Web浏览器的请求。见 复制请求 . |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-9-8 09:28 , Processed in 0.026536 second(s), 17 queries .