【问题标题】:response.css html on ScrapyScrapy 上的 response.css html
【发布时间】:2021-10-23 09:53:23
【问题描述】:

我正在尝试从此处的“网站”中提取 html 链接 https://www.tripadvisor.com/Restaurant_Review-g982688-d1140717-Reviews-Strandkanten-Karlskoga_Orebro_County.html https://monosnap.com/file/agSNP29XoLDlG4HZtntaaifAtFPzcH 我试过 response.css('a.dOGcA::attr(href)').extract() 但它给出了一个空白的回应 我究竟做错了什么? 谢谢!

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: html scrapy tripadvisor


【解决方案1】:

您要抓取的网址是动态加载的。如果你禁用了 javascript,那么你会看到 url/href 从 html Dom 中消失了,这就是为什么我将 SeleniumRequest 与 scrapy 一起使用并获得所需的输出。

代码:

import scrapy
from scrapy_selenium import SeleniumRequest

class LinkSpider(scrapy.Spider):

    name = 'link'

    def start_requests(self):
        url = 'https://www.tripadvisor.com/Restaurant_Review-g982688-d1140717-Reviews-Strandkanten-Karlskoga_Orebro_County.html'
        yield SeleniumRequest(
            url=url,
            wait_time=3,
            callback=self.parse)

    def parse(self, response):
        
        yield {'Link':response.xpath('//a[@class="dOGcA Ci Wc _S C fhGHT"]/@href').get()}
       

    def spider_closed(self):
        self.driver.close()

输出:

2021-10-24 01:25:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.tripadvisor.com/Restaurant_Review-g982688-d1140717-Reviews-Strandkanten-Karlskoga_Orebro_County.html>
{'Link': 'http://www.strandkanten.nu'}

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2018-09-30
    相关资源
    最近更新 更多