用关键字分离HTML文件以便抓取



我正在使用Scrapy在Python中编程,并且有一个巨大的html文件,其结构类似于下面演示的:

<span>keyword</span>
<title>Title 1</title>
<span>Date 1</span>
<div>Content 1</div>
<span>keyword</span>
<title>Title 2</title>
<span>Date 2</span>
<div>Content 2</div>
...
<span>keyword</span>
<title>Title N</title>
<span>Date N</span>
<div>Content N</div>

我的目标是得到所有的title, datediv内的内容为每个部分,但部分本身不位于单独的div或其他元素,只是一个接一个,直到第n部分。

虽然我可以尝试将所有title[1:N], date[1:N]div[1:N]作为len() = N的列表,这样做可以防止调试,就像N达到10,000和len(title)==len(date)==len(div) -> False一样,很难找到出错的地方(例如有些标题放在<strong>而不是<title>)。

我注意到的一个项目是位于每个部分之间的关键字。在这个关键字的帮助下,是否有可能将整个html分成N个部分,并希望通过迭代得到每个部分的item[i] = ["Title_i", "Date_i", "DIV_i"] ?

这样缺失的数据将被表示为item[1]=["", Date_i, Div_i ],并且更容易定位。

Carl,你可以试着用关键字把html文件的内容分成几个简洁的部分。

  1. 你应该能够知道所有可能的关键字的完整集合/字典。
  2. 某些关键字可能在任何Content部分内重复…所以最好不要使用纯关键字值,也不要使用<span>keyword</span>表达式,而是使用最独特的<span>keyword</span>s*<title><span>keyword</span><strong>表达式。因此,您可以以大概率正确地分割部分。

最新更新