使用关键字分隔HTML文件以进行抓取

时间:2016-10-06 05:00:17

标签: python web-scraping scrapy

我使用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 ],并且更容易找到。

1 个答案:

答案 0 :(得分:0)

Carl,您可以尝试按关键字将html文件内容拆分为简洁部分。

  1. 您应该能够知道所有可能关键字的完整/字典。
  2. 某些关键字可能会在任何custom tableview cell class部分内重复...因此,您最好不要使用纯关键字值进行拆分,也不要使用Content表达式进行拆分,但要使用最独特的{{1} }和<span>keyword</span>表达式。因此,您很有可能正确地拆分零件。