我正在使用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
, date
和div
内的内容为每个部分,但部分本身不位于单独的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文件的内容分成几个简洁的部分。
- 你应该能够知道所有可能的关键字的完整集合/字典。
- 某些关键字可能在任何
Content
部分内重复…所以最好不要使用纯关键字值,也不要使用<span>keyword</span>
表达式,而是使用最独特的<span>keyword</span>s*<title>
和<span>keyword</span><strong>
表达式。因此,您可以以大概率正确地分割部分。