【问题标题】:Scrapy: adding a variable to xpath arrayScrapy:将变量添加到 xpath 数组
【发布时间】:2014-06-21 08:14:00
【问题描述】:

我只是想知道是否有办法将 num 添加到 tr[1] 之类的 this -> tr[1+num]... 我尝试了 tr[1+9] 并且它有效,但是当我将它更改为 num 时,它当然给了我一个错误。谢谢!

    items = []
    num = 1
    hxs = HtmlXPathSelector(response)
    dir = hxs.select('/html/body/div/table')
    for i, tr in enumerate(hxs.select('/html/body/div/table//tr[count(./td)=2]')):
        if (i % 7 == 0): 
            if (i > 0): items.append(item)
            item = CraigslistSampleItem()
        idx = i % 7
        if(idx == 0):
            item[rn[idx]] = tr.select('./td[2]//text()').extract()[0]
            item ["title"] = dir.select('//tr[num]/td[2]/b/text()').extract()
            num = num + 9

【问题讨论】:

  • 你遇到了什么错误?
  • 将 xpath 指定为 select('//tr[%s]/td[2]/b/text()'%str(num))
  • 列表索引超出范围。对我来说唯一的问题是 tr[num] 因为 tr[1+9] 有效......
  • 我应该把它作为答案

标签: python xpath web-scraping scrapy


【解决方案1】:

将 xpath 指定为 select('//tr[%s]/td[2]/b/text()'%str(num))

num 是一个变量,'' 中的 num 没有任何意义

【讨论】:

  • :) 所以是个好地方。上个月我也学习了用于网络抓取的 scrapy 和 selenium
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多