首页 > 解决方案 > 如何从不同的网站获取相同类型的内容?

问题描述

我们知道大多数网站都有包含网站所有主要类别的站点地图。现在我有一个不同站点地图的网址列表(超过 100K),我希望从我拥有的所有不同站点地图中提取特定类别的网址。例如,假设我正在访问 microsoft 的站点地图并且有一个名为 news 的地方,所以我可以简单地使用 xpath 来获取该 url,但这仅适用于一个站点,如果我有大量的站点并且我想提取所有的 '只要它们存在,就可以从他们那里获得新闻的网址。我的第一个想法是训练一个模型来识别新闻。但是,我对机器学习很陌生,如果这是解决它的方法,有人可以向我解释如何解决这个问题吗?需要采取哪些步骤。或者,如果这不是最好的方法,还有其他建议吗?谢谢你。

标签: pythonscrapyweb-crawler

解决方案


如果您实际使用的是新闻网站,那么有一个应用程序称为 news3k。https://github.com/codelucas/newspaper/

您可以使用类似的方式提取所有新闻链接。

response.css(':contains("News")::attr(href)').extract()

您可以使用 xpath 使上述调用更好一些,并在必要时忽略大小写。

我想还有许多其他链接,您希望它从所有站点地图中提取。您可以使用 CrawlSpider 和 linkextractor 规则来抓取这些站点地图......

看到这个答案Scrapy - 了解 CrawlSpider 和 LinkExtractor


推荐阅读