【发布时间】:2016-04-10 14:34:08
【问题描述】:
我正在更新本教程,因为它已过时:
http://mherman.org/blog/2012/11/05/scraping-web-pages-with-scrapy/#.VwpeOfl96Ul
它应该获取 Craigslist for NPO 上每个职位列表的链接和标题。链接被获取,但标题没有。
这是该元素的页面代码:
<span class="pl">
<time datetime="2016-04-09 14:10" title="Sat 09 Apr 02:10:57 PM">Apr 9</time>
<a href="/nby/npo/5531527495.html" data-id="5531527495" class="hdrlnk">
<span id="titletextonly">Therapist</span>
这是爬虫的代码:
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.xpath("//span[@class='pl']")
items = []
for titles in titles:
item = CraigslistSampleItem()
item["title"] = titles.select("a/text()").extract()
item["link"] = titles.select("a/@href").extract()
items.append(item)
return items
如果我在 Chrome 中检查元素并获取 XPath,我会得到以下标题: //*[@id='titletextonly'],但这给了我完整的标题列表,而不仅仅是链接的标题(在这种情况下,我应该得到'/nby/npo/5531527495.html'作为链接,和“治疗师”作为标题)
我知道这条线
item["title"] = titles.select("a/text()").extract()
需要更新,但如果我输入 //*[@id='titletextonly'] 我会得到每个标题,所以我很接近,但我不知道如何在“href”元素中获取“titletextonly”的 XPath。
我是 Scrapy 和 Xpath 的新手,所以请善待您的 cmets。
谢谢。
【问题讨论】:
标签: xpath scrapy web-crawler