【问题标题】:Scrapy doesn't recognise xpathScrapy 无法识别 xpath
【发布时间】:2019-03-18 00:12:12
【问题描述】:

我尝试从该页面https://octopart.com/electronic-parts/integrated-circuits-ics 获取数据,但从 Specs 按钮获取数据。我尝试使用此代码获取产品的名称,但它不起作用。

class SpecSpider(scrapy.Spider):
name='specName'

start_urls = ['https://octopart.com/electronic-parts/integrated-circuits-ics']
custom_settings = {
    'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter',
}

def parse(self,response):

    return FormRequest.from_response(response, formxpath="//form[@class='btn-group']", clickdata={"value":"serp-grid"}, callback = self.scrape_pages)

def scrape_pages(self, response):
    #open_in_browser(response)
    items = SpecItem() 

    for product in response.xpath("//div[class='inner-body']/div[class='serp-wrap-all']/table[class='table-valign-middle matrix-table']"):

        name = product.xpath(".//tr/td[class='matrix-col-part']/a[class='nowrap']/text()").extract()            
        items['ProductName']=''.join(name).strip()

        price = product.xpath("//tr/td['4']/div[class='small']/text()").extract()
        items['Price'] = ''.join(price).strip()



        yield items

这个 xpath response.xpath("//div[class='inner-body']/div[class='serp-wrap-all']/table[class='table-valign-middle matrix-table']") 不起作用。

任何建议

【问题讨论】:

    标签: python xpath web-scraping scrapy


    【解决方案1】:

    您使用了错误的 XPATH 语法!

    //div[class='inner-body']/div[class='serp-wrap-all']/table[class='table-valign-middle 矩阵表']

    正确的格式是在“class”前加“@”

    //div[@class='inner-body']/div[@class='serp-wrap-all']/..

    以上链接中没有“矩阵表”表。

    尝试使用类似的东西:

    //div[@class='inner-body']/div[@class='serp-wrap-all']//*[contains(@class,'matrix-table')]

    【讨论】:

    • 谢谢,这就是问题所在。
    【解决方案2】:

    如果您只想要顶级产品名称,请使用 css 选择器

    .serp-card-pdp-link
    

    并提取文本

    中间价来自css选择器

    .avg-price-faux-btn
    

    您可以使用 .css(selector) 将 css 与 scrapy 一起应用

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多