【发布时间】:2012-08-22 00:56:21
【问题描述】:
我有一个项目,我必须从许多页面中抓取许多 URL。我认为每个页面的结构都将保持不变,但有时它会改变并破坏我的代码。
例如,我需要提取一篇文章的摘要及其关键字,它们都在一个单独的<p> 与同一类"marginB3" 中。于是我刮了一页,只得到了两个结果,一个是摘要,另一个是关键字:
hxs = HtmlXPathSelector(response)
lista = hxs.select('//p[@class="marginB3"]/text()')
self.abstracto = lista[0].extract()
self.keywords = lista[1].extract()
然后我尝试了第三页,出现了一个新的<p>,其中包含有关该文章的一些附加信息并更改了结构。这使它变得更加复杂,因为没有 id 而只有类。如果没有id的关键字上面有自己的<h2>,我如何区分哪个是<p>:
<h2>Info</h2>
<p class="marginB3">a_url_I_want</p>
我可以通过阅读 <h2> 和下面的 <p> 来进行区分吗?
【问题讨论】:
标签: xpath scrapy web-crawler