我使用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 ]
,并且更容易找到。
答案 0 :(得分:0)
Carl,您可以尝试按关键字将html文件内容拆分为简洁部分。
custom tableview cell class
部分内重复...因此,您最好不要使用纯关键字值进行拆分,也不要使用Content
表达式进行拆分,但要使用最独特的{{1} }和<span>keyword</span>
表达式。因此,您很有可能正确地拆分零件。