【发布时间】:2012-06-11 02:43:19
【问题描述】:
我在 scrapy shell 中使用以下 xpath:
hxs.select("(//table[@class='result']//font/span[@class='g'])").extract() 我得到以下结果:
[u' www.bbhouse.lk/administration/preside ... 2012-5-31 - ',u' www.listeningexpress.com/speeches/kumar 2012-5-27 - ', u' v.youku.com/v_show/id_XNDgwNjc2MzI=.html 2012-5-27 - ', u' www.kumarkumar.com/ 2012-6-10 - ', u' www.guao.hk/tag/kumar 2012-5-26 - ',你' www.myspace.com/kumarkumar/ 2012-5-27 - ']
我想提取的只是所有这些结果中的日期: 2012-5-31、2012-5-27等
我的问题是有时会出现在两者之间的粗体标签,所以我不能直接使用 text() 函数(另一个问题是我只想要日期)。请注意,我不想像这样使用 re() 函数: hxs.select("(//table[@class='result']//font/span[@class='g'])").re(r'\d+') 等
我只想使用 XPATH 获得结果。此外,Substring 函数仅适用于结果集中的第一个结果,所以这对我来说也不起作用。
我基本上是从http://www.baidu.com/s?wd=kumar中提取缓存日期
【问题讨论】:
-
那么您要抓取的页面的实际源 HTML / URL 是什么?当我们得到它时,用 XPath 帮助你会容易得多:)
-
我在最后指定了网址。
-
如果您要尝试使用 XPath 执行此操作,您将遇到麻烦。 XPath 结果上的正则表达式将是最简单的,因为日期格式相同且易于捕获。
-
stackoverflow.com/questions/17406992/…以上链接可能对您有所帮助
标签: scrapy