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