获取源html(python)中的所有链接站点

获取源html(python)中的所有链接站点,python,hyperlink,get,Python,Hyperlink,Get,我想得到一个网页中的所有链接,这个功能只有一个链接,但需要得到所有链接!我当然知道这只戒指是真的,但我不知道它的用途 我需要得到所有链接 def get_next_target(page): start_link = page.find('<a href=') start_quote = page.find('"', start_link) end_quote = page.find('"', start_quote + 1) url = page[start_quote + 1:end_

我想得到一个网页中的所有链接,这个功能只有一个链接,但需要得到所有链接!我当然知道这只戒指是真的,但我不知道它的用途

我需要得到所有链接

def get_next_target(page):
start_link = page.find('<a href=')
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1:end_quote]
return url, end_quote
def get_next_目标(第页):
start_link=page.find('您可以用于:

 import lxml.html

 def get_all_links(page):
     document = lxml.html.parse(page)
     return document.xpath("//a")

这就是HTML解析器的用武之地。我建议:


请明确说明您的需要。什么是“一个环”?请使用包
html.parse
中的
HTMLParser
urllib.parser.urljoin
(如果需要)。不要尝试只搜索子环甚至regexp,这不会起作用(当然,不是所有情况下都会起作用)当然,如果你只有一个页面需要处理,你可以编写一个快速而肮脏的程序,但是如果你有许多来自不同来源的页面,这是不明智的。在你的程序中有几个陷阱:你假设引号总是双引号,但你可能会在HTML文件中找到单引号,或者根本没有引号。还有字符串“另一种使用BS的方式”".
from bs4 import BeautifulSoup as BS
def get_next_target(page)
    soup = BS(page)
    return soup.find_all('a', href=True)
site = urllib.urlopen('http://somehwere/over/the/rainbow.html')
site_data = site.read()
for link in BeautifulSoup(site_data, parseOnlyThese=SoupStrainer('a')):
    if link.has_attr('href'):
        print(link['href'])