【问题标题】:Scrapy Web Spider Xpath SelectorScrapy Web Spider Xpath 选择器
【发布时间】:2015-02-08 03:00:10
【问题描述】:

我怎样才能通过使用这个来让它工作:

蜘蛛

for sel in response:
       item = DmozItem()
       item['title'] = sel.xpath("//td[@class='nblu  tabcontent']/a/big/text()").extract()
       item['link'] = sel.xpath("//td[@class='nblu tabcontent']/a/@href").extract()
       yield item

而不是使用这个:

  for sel in response.xpath("//td[@class='nblu tabcontent']"):
       item = DmozItem()
       item['title'] = sel.xpath("a/big/text()").extract()
       item['link'] = sel.xpath("a/@href").extract()
       yield item

第一个显然不起作用,正在寻找与第一个代码形式的第二个代码执行相同操作的替代方法。

谢谢,查理

【问题讨论】:

  • 第二个sn-p有什么问题?对不起,但我无法理解这个问题。谢谢。
  • 同意@alecxe,您的问题令人困惑,但请注意,在第一种情况下@class='nblu tabcontent' 有多个空格不等于@class='nblu tabcontent' 有一个空格。
  • 抱歉,多余的空格是错字。记住@alecxe,你回答的 mysql 没有足够的参数问题,如果我使用 for-loop 会再次遇到同样的问题

标签: for-loop xpath scrapy response selector


【解决方案1】:

其实你可以直接编码如下

item = DmozItem()
item['title'] = response.xpath("//td[@class='nblu   tabcontent']/a/big/text()").extract()
item['link'] = response.xpath("//td[@class='nblu tabcontent']/a/@href").extract()
yield item

【讨论】:

    【解决方案2】:

    使用xpath函数contains()

    //td[contains(@class, 'nblu') and contains(@class, 'tabcontent')]
    

    【讨论】:

    • @CharlieC 有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 2016-03-12
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多