0

我是第一次在 Scrapy 上工作,但我无法让它返回任何东西。有人可以帮我理解我做错了什么吗?

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from idcode.items import StatuteItem

class IdCodeSpider(BaseSpider):
  name = "idcode"
  allowed_domains = ["idaho.gov"]
  start_urls = ["http://legislature.idaho.gov/idstat/Title1/T1CH1SECT1-101.htm"]

  def parse(self, response):
    hxs = HtmlXPathSelector(response)
    item = StatuteItem()
    item['title'] = hxs.select("//table/tbody/tr[1]/td[2]/div[2]/div[1]/div[1]/text()").extract()
    return item

我知道我项目中的其他所有内容都在工作,因为如果我在item['title'] = "test"上面添加return item它会返回“测试”。所以我的 XPath 一定有问题,但我在 Chrome 开发者控制台中测试了它,它在那里工作。

4

2 回答 2

1

删除tbody解决了这个问题。

item['title'] = hxs.select("//table/tr[1]/td[2]/div[2]/div[1]/div[1]/text()").extract()
于 2013-09-29T13:13:15.477 回答
0

如果你想使用代码而不仅仅是创建它,你可以使用 Goose 项目。它仅适用于文本和媒体,但我已经使用了很多次,我没有任何问题。

链接在这里:

https://github.com/grangier/python-goose

于 2013-09-29T09:53:39.660 回答