Python 显示网页中的所有链接

Python 显示网页中的所有链接,python,django,python-2.7,Python,Django,Python 2.7,这里是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") rea

这里是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 }}
试试这个

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 %}
使用正确的变量名…:)

试试这个

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 %}

使用正确的变量名…:)

结果只包含最后一个链接。将其附加到循环中的列表中,然后将列表发送到模板

现在你的结果只有最后一个链接

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')
    list1 = []
    for lin in links:
        result = lin.get('href')
        list1.append(result)

    return render(request, 'search/homepage.html', {'result': list1,'url':url})
这会有用的。。 您的列表(列表1)将如下所示。 ['www.google.com'、'www.new.com'、'..'、'..']

在模板中,您可以循环使用结果变量来打印每个链接。(.html文件)


您的结果只包含最后一个链接。将其附加到循环中的列表中,然后将该列表发送到模板

现在你的结果只有最后一个链接

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')
    list1 = []
    for lin in links:
        result = lin.get('href')
        list1.append(result)

    return render(request, 'search/homepage.html', {'result': list1,'url':url})
这会有用的。。 您的列表(列表1)将如下所示。 ['www.google.com'、'www.new.com'、'..'、'..']

在模板中,您可以循环使用结果变量来打印每个链接。(.html文件)


您正在进行迭代,因此
链接
集合的最后一个元素(隐私策略)被分配给
结果
变量。最好将该集合或其经过消毒的表单传递到模板文件。您正在进行迭代,因此
链接
集合的最后一个元素(隐私策略)被分配给
结果
变量。最好将该集合或其经过消毒的表单传递到模板文件。