【发布时间】:2011-11-16 18:28:24
【问题描述】:
所以我正在编写链接获取器,以在特定网站上为给定的“起始链接”组查找新链接。
目前我正在使用 Python/Beautiful Soup 来实现这一目标并取得了不错的成功。
我有一个 [针对每个站点的] 输入文件,我从中构建“起始链接”列表。
我使用 urllib2 加载网页,然后使用漂亮的汤来找到我需要获取的链接组并将它们附加到列表中。有些网站的链接在很多不同的页面之间分开,所以我必须将它们全部加载以收集链接。
从每个“起始链接”收集所有指定类型的链接后,我让它将此列表与我从文件加载的“先前收集的”列表进行比较。然后,我将差异返回到另一个列表,即“新链接”列表,并将这些添加到“先前收集的”链接列表中。
我的问题是性能。每次我重新运行程序时,我都会回忆所有这些以前看到的链接,这意味着我正在重新加载一堆我不会从中获得任何新链接的页面。
通常这些网站会在其他网站之上添加新链接,所以我想我的下一步可能是将“当前可用”链接与“以前收集的”列表进行比较,如果没有匹配,则收集链接直到匹配发生,然后它会退出这个给定的“起始链接”并继续下一个,可能会为断开链接的网站节省大量页面加载。
这是否有助于加快我将安排每隔几天运行的新链接的获取速度?
“以前收集的”列表中可能有几十万个链接,所以我不确定这将如何影响反复运行此比较与保持程序哑并始终重新收集所有可用链接的情况。
你们有更好的解决方案吗?非常感谢任何意见。
【问题讨论】:
标签: python beautifulsoup