簡體   English   中英

如何修復def以返回鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM