我正在尝试使用 Scrapy 来刮取Craigslist分类,以提取待售物品。
我能够提取日期,帖子标题和发布网址,但无法提取价格。
由于某些原因,当前代码提取了所有的价格,但当我在价格跨度查找之前删除 // 时,价格字段将返回为空。< / p>
有人可以查看以下代码并帮助我吗?
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from craigslist_sample.items import CraigslistSampleItem
class MySpider(BaseSpider):
name = "craig"
allowed_domains = ["craigslist.org"]
start_urls = ["http://longisland.craigslist.org/search/sss?sort=date&query=raptor%20660&srchType=T"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select("//p")
items = []
for titles in titles:
item = CraigslistSampleItem()
item['date'] = titles.select('span[@class="itemdate"]/text()').extract()
item ["title"] = titles.select("a/text()").extract()
item ["link"] = titles.select("a/@href").extract()
item ['price'] = titles.select('//span[@class="itempp"]/text()').extract()
items.append(item)
return items
答案 0 :(得分:2)
itempp
似乎位于另一个元素itempnr
内。如果您要将//span[@class="itempp"]/text()
更改为span[@class="itempnr"]/span[@class="itempp"]/text()
,可能会有效。