我需要创建一个通用的Web抓取工具来解析不同网站上的文章。当然,我了解XPath,但是尽管页面有HTML标记,我还是想尝试使其对任何网站通用。
我需要确定页面上是否有文章,以及是否有文章-解析标题,正文和标签(如果存在)的文本。
坦率地说,我在DS中的知识不是很丰富,但是我认为可以解决此任务(确定它是否是文章,并且仅解析所需的部分)。
我应该使用哪些工具?有帮助吗?
实际上,对于第二项任务,我需要实现与google chrome mobile相似的功能。如果页面没有针对移动设备进行优化,则建议以自适应模式(仅标题和主要内容)显示页面。
答案 0 :(得分:2)
如果您使用的是Python,则需要查看一些库:
scrapy,它会抓取数据并可以提取一些结果),
BeautifulSoup,它更适合提取部分本身。
可以通过为刮板创建自定义标头来请求网站的版本(例如,用于Chrome,Safari,移动版,旧式系统)。 看看the relevant documentation,您将了解如何在草率的here中使用标头。
我不知道更多专业工具。您的任务更具分析性,通常无法使用模型进行估算,例如网页上的内容是什么。但是,这可能是一个有趣的研究方向。查看您是否可以创建一个可以在许多网站上推广的模型以提取所需的内容。
这引出我的最后一个观点,也就是说,通常不可能创建一个适用于任何网站的刮板(*包含您的非军事类型)。人们创建网站的方式有所不同,但是他们认为合适,这意味着他们也会对其进行更改。通常,这会导致一个好的刮板需要随着时间(和开发人员)的不断更新而不断更新。
编辑:
然后,如果您有很多带有标签的示例,则有可能训练模型。挑战可能是模型的回顾范围。例如,为典型的LSTM模型提供了一个参数,该参数告诉它回顾过去有多远。它内部存储在其内存中。在您的情况下,您可能正在寻找文章的开始和结束HTML标签,然后仅提取该部分。这些tah可能相隔数千个字。标准LSTM可能不适合保留和使用。
如果您提出的问题可能有所不同,那么还有其他可行的方法。例如,您可以这样说:“我有此HTML,文章内容在哪里?如果您的用例听起来不错,请have a look here for some model based approaches。