数据显示不正确

data does not appear correctly

我在使用 scrapy spider 显示 phone 数字时受到限制,这应该显示 phone 数字,但它不起作用,似乎我必须点击“点击调用”以显示号码,但是当我添加 css class 时显示 phone 号码但它不起作用 'Call': products.css('span.hz-pro-search-result__contact-info__cover::text').get(),

scrapy 蜘蛛只打印“点击通话” 它应该显示 phone 数字

import scrapy

class houzzSpider(scrapy.Spider):
    name = 'houzz'
    start_urls = ['https://www.houzz.com/professionals/interior-designer']

    def parse(self, response):
        for products in response.css('div.hz-pro-search-result'):
            try:
                yield {
                    # 'Name': products.css('a').find('span.header-5.text-unbold.mlm::text').get(),
                    'Call': products.css('span.hz-pro-search-result__contact-info__cover::text').get(),

                }
            except:
                yield {                   
                    'Call': products.css('span.hz-pro-search-result__contact-info__cover::text').get(),

                }
        next_page = response.css('a.hz-pagination-link.hz-pagination-link--next').attrib['href']
        if next_page is not None:
            yield response.follow(next_page, callback=self.parse)

当使用“点击通话”link 时,您尝试抓取的数据是使用 javascript 填写的。

它在页面源中包含的巨大 (450kB) json blob 中可用:

<script id="hz-ctx" type="application/json">...</script>

如果您使用 json 库加载此数据并找出所需数据的路径,您应该能够毫无问题地提取它。