因为我讨厌在维基百科文章中来回点击阅读,所以我正在尝试构建一个工具来根据以下算法创建“扩展的维基百科文章”:
- 创建两个变量:
Depth
和 Length
。
- 将维基百科文章设置为种子页面
- 解析这篇文章:每当有指向另一篇文章的链接时,获取第一个
Length
句子并将其包含在原始文章中(例如在括号中或以其他方式突出显示)。
- 递归地执行此操作直到某个
深度
,即不超过两层。
结果将是一篇可以一次性阅读的文章,而无需总是来回点击...
您将如何在 Python 中构建这样的机制?应该使用哪些库(是否有用于此类任务的库)?有什么有用的教程吗?
您可以使用 urllib2用于请求网址。为了解析 html 页面,有一个名为 BeautifulSoup 的很棒的库。 .您需要考虑的一件事是,在使用爬虫扫描维基百科时,您需要在请求中添加标题。否则维基百科将拒绝被抓取。
request = urllib2.Request(page)
添加标题
request.add_header('User-agent', 'Mozilla/5.0 (Linux i686)')
然后加载页面并将其交给BeautifulSoup
。
soup = BeautifulSoup(response)
text = soup.get_text()
这将为您提供页面中的链接
for url in soup.find_all('a',attrs={'href': re.compile("^http://")}):
link = url['href']
现在关于抓取维基百科的算法,你想要的是一个叫做 Depth Limited Search 的东西。 .同一页面中提供了伪代码,很容易理解。
上述库的其他功能可以用谷歌搜索,很容易理解。祝你好运。
我是一名优秀的程序员,十分优秀!