打开网页并返回该页面上的链接字典

时间:2015-10-31 03:17:15

标签: python

我想编写一个打开网页的函数,并返回该页面上所有链接及其文本的字典。我试图这样做,但它给了我一个错误。我该怎么办?

def process(url):
    myopener = MyOpener()
    #page = urllib.urlopen(url)
    page = myopener.open(url)

    text = page.read()
    page.close()

示例输入

<a href='http://my.computer .com/some/file.html'>link text</a>

输出

{"http://my.computer.com/some/file.html":link text.."}

1 个答案:

答案 0 :(得分:1)

欢迎使用Stack Overflow,

你没有展示MyOpener做了什么,所以我使用了自己的。{1}}。 此代码在Python Wikipedia文章中使用Python 3和Beautiful Soup 4 HTML解析器(个人最爱)。

root_url = "https://en.wikipedia.org"
html_string = retrieve_webage(root_url + "/wiki/Python_%28programming_language%29")
soup = BeautifulSoup(html_string)
output = {}
# Can redefine soup here to parse only a certain part of the page
for link in soup.find_all('a'):
    linkhref = link.get('href')
    if not linkhref:
        # Ingnore blank hyperlinks
        pass
    elif linkhref[0] == '/':
        # Add root url to relitive links
        linkhref = root_url + linkhref
    output[linkhref] = link.text

此脚本将覆盖具有相同href属性的任何链接,因为它在页面上读取它们。您可以了解更多有关美味汤here的信息。

如果您有疑问,请随时在下面发表评论