Skip to main content
 首页 » 编程设计

python之显示网页中的所有链接

2025年05月04日23落叶无声

这里是views.py。我想显示“www.pythonforbeginners.com”包含的所有链接,但问题是它只显示页面的最后一个链接。我该如何解决?

from django.shortcuts import render 
from bs4 import BeautifulSoup 
import urllib2 
 
def home(request): 
    url = urllib2.urlopen("http://www.pythonforbeginners.com") 
    readurl = url.read() 
    soup = BeautifulSoup(readurl) 
    links = soup.find_all('a') 
    for lin in links: 
         result = lin.get('href') 
 
    return render(request, 'search/homepage.html', {'result': result, 'url':url}) 

这里是 homepage.html

{{ result }} 

And output I got:

请您参考如下方法:

试试这个。

def test(request): 
    url = urllib2.urlopen("http://www.pythonforbeginners.com") 
    readurl = url.read() 
    soup = BeautifulSoup(readurl) 
    links = soup.find_all('a') 
    result = [] 
    for lin in links: 
        result.append(lin.get('href')) 
 
    return render(request, 'portal_test.html', {'result': result, 'url': url}) 

您正在做的是覆盖结果数据。您必须使用列表并获取其中的所有数据。然后在模板中使用,

{% for x in result %} 
{{ x }} 
{% endfor %} 

使用正确的变量名...:)