【问题标题】:Scraping data with Scrapy and Xpath使用 Scrapy 和 Xpath 抓取数据
【发布时间】:2017-03-22 17:48:52
【问题描述】:

我正在尝试使用 Scrapy 和 xpath 从站点抓取数据,但遇到了一些麻烦。这是我的代码:

class MaijiaSpider(scrapy.Spider):
    name = 'maijiaSpider'
    start_urls =["http://www.maijia.com/index.html#/item/list/?keyword=recaro"]

    def parse(self, response):
        articles = response.xpath("//table[@class='ui-table ui-table-striped ui-table-inbox tablefixed']//tr[1]/td[2]/div/div[1]/a/@href")
        for article in articles:
            yield{
                'link': article.xpath('.//td[2]//a/@href').extract_first() 
            }

问题是文章总是空的,因此它永远不会进入 for 循环。我究竟做错了什么?我尝试了不同的 xpath 字符串,但似乎没有任何效果。

【问题讨论】:

  • 这是一个相当长的 XPath 表达式。 '//div[@class="cell-box"]/a' 怎么样?出错的机会更少。
  • 如何在start-urls 中从URL 获取页面源代码?
  • @leovp 我也试过了,但还是不行
  • @Andersson 对不起,我不明白这个问题!我刚开始使用scrapy,所以我的知识真的很有限

标签: python xpath scrapy


【解决方案1】:

这个页面使用JavaScript来获取数据,数据的URL是:

http://www.maijia.com/data/item/list?api_name=item_get_list&type=ALL&pageNo=1&pageSize=10&keyword=recaro&sortField=amount30&sortType=desc

您可以在 Chrome 开发工具中找到此 URL

【讨论】:

  • 对不起,我刚开始使用scrapy,究竟是什么意思?我应该在代码中更改什么?
  • @Giada Confortola 将请求 URL 更改为 maijia.com/data/item/…
猜你喜欢
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
相关资源
最近更新 更多