如何修复 def 以返回链接



我在带有beautifullSoup的网站上找到了一些链接,需要将它们返回到列表(或txt文件(中以便以后使用它们。

这是为了从他们指向的网站上的链接中获取一些文本。我试图def返回链接,但我不够聪明,无法让 def 工作。

for link in soup.find_all('a', href=True):
print(link["href"])

我从上面的代码中获得了一个链接列表,可以让它写入文本文件(我自己(并制作一个新的 python 脚本,但我宁愿"返回"它以继续脚本并顺便学习一些东西。 我想出了这个,但不起作用:

def linkgetter(soup):
for link in soup.find('a', href=True):
return soup

它打印出整个网站的HTML代码,并且不过滤链接。

def get_links(soup):
return [link["href"] for link in soup.find_all('a', href=True)]

您可以尝试以下操作:

from bs4 import BeautifulSoup
import urllib2
import re
def parse_links(url):
links = []
html = urllib2.urlopen(url)
soup = BeautifulSoup(html)
for link in soup.findAll('a'):
links.append(link.get('href'))
return links
print parse_links("https://stackoverflow.com/questions/57826906/how-to-fix-the-def-to-return-the-links#57826972")

如果要获取以 http://开头的链接,可以使用:

soup.findAll('a', attrs={'href': re.compile("^http://")})

最新更新