无法抓取带有样式组件 javascript 的网站

Unable to scrape a website with styled-component javascript

我的目标

使用 Scrapy 框架从这个 page 中获取基本信息,但问题并不特定于此框架。我们以 h1 节点中的 p 元素为例。

问题

我从 Scrapy 请求中得到的响应所做的所有选择都无法 return h1 节点中的内容。

scrapy shell 'url'
response
>>> 200
response.xpath('//h1/p')
>>> []
正在获取响应:

获取响应时,我看到一个我无法真正理解的结构,所有主要 html 标记都被压缩并放置在一堆 javascript 样式组件之后。 file is here (ligne 1725).

我的过程

正在通过开发工具测试选择器:

从开发工具中禁用 Javascript 并测试我的选择器后,我得到了想要的结果。例如,我通过控制台中的一个简单查询 //h1/p 获得了 <h1> 中的 <p> 元素。

用 scrapy 测试选择器 shell:

无法正常工作,请参阅问题

使用启动测试选择器:

我得到的结果与问题中显示的完全相同。

我无法解释这个错误,但我希望能为您的问题提供答案

response.xpath('//*[@class="summary__StyledAddress-e4c4ok-6 zWwUF textIntent-title1"]/text()').get()

returns : '12-14 31st Avenue, Unit 2 '

希望您需要哪个?

P 博士