【发布时间】:2014-03-07 12:20:51
【问题描述】:
我正在从以下 URL 抓取数据:
http://www.indexmundi.com/commodities/?commodity=gasoline
有两个部分包含价格:墨西哥湾汽油期货日终结算价和汽油每日价格
我想将这两个部分的数据作为两个不同的项目抓取。这是我写的代码:
if dailyPrice:
item['description'] = u''.join(dailyPrice.xpath(".//h1/text()").extract())
item['price'] = u''.join(dailyPrice.xpath(".//span/text()").extract())
item['unit'] = dailyPrice.xpath(".//div/p/text()").extract()[0].split(',')[-1]
regex = re.compile("Source:(.*)",re.IGNORECASE|re.UNICODE)
result = re.search(regex, u''.join(dailyPrice.xpath(".//div/p/text()").extract()))
if result:
item['source'] = result.group(1).strip()
yield item
if futurePrice:
item['description'] = u''.join(futurePrice.xpath(".//h1/text()").extract())
item['price'] = u''.join(futurePrice.xpath(".//span/text()").extract())
item['unit'] = u''.join(futurePrice.xpath(".//div[2]/table//tr[1]/td/text()").extract())
source = futurePrice.xpath(".//div[2]/table//tr[4]/td/a/text()").extract()
if source:
item['source'] = u' - '.join(source)
else:
item['source'] = ''
yield item
我想知道这段代码是否可以正常工作,或者应该采取什么正确的方法来做到这一点?
【问题讨论】:
标签: python-2.7 web-scraping web-crawler scrapy