[英]how to fix the def to return the links
我使用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://")})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.