试图解析来自wiki的所有链接文本

时间:2013-04-17 01:01:26

标签: python parsing python-3.x wiki

我试图解析一个wiki页面here,但我只想要某些部分。主要文章中的那些链接,我想解析它们。是否有关于如何做的文章或教程?我假设我正在使用BS4。有人可以帮忙吗?

具体来说;页面中所有主标题下的链接。

1 个答案:

答案 0 :(得分:1)

嗯,这实际上取决于“解析”的含义,但这里有一个完整的工作示例,介绍如何使用BeautfulSoup从主要部分提取所有链接:

from bs4 import BeautifulSoup
import urllib.request

def main():
    url = 'http://yugioh.wikia.com/wiki/Card_Tips%3aBlue-Eyes_White_Dragon'
    page = urllib.request.urlopen(url)
    soup = BeautifulSoup(page.read())
    content = soup.find('div',id='mw-content-text')
    links = content.findAll('a')
    for link in links:
        print(link.get_text())

if __name__ == "__main__":
    main()

此代码应该是自我解释的,但以防万一:

  • 首先,我们使用urllib.reauest.urlopen打开页面,并将其内容传递给BS
  • 然后我们通过id提取主要内容div。 (可以在页面的源代码中找到id mw-content-text
  • 我们继续提取主要内容中的所有链接
  • for循环中,我们打印所有链接。

您可能需要解析链接的其他方法:

  • link.get('href')提取目标网址
  • link.get('title')提取链接的替代标题

既然你要求资源:http://www.crummy.com/software/BeautifulSoup/bs4/doc/是你应该开始的第一个地方。