欢迎访问宙启技术站
智能推送

Python中的links()函数和hrefs()函数的区别和使用场景

发布时间:2023-12-15 07:18:18

在Python中,links()函数和hrefs()函数都是用来提取HTML页面中的链接的方法。它们的区别在于links()函数返回的是绝对路径的链接,而hrefs()函数返回的是相对路径的链接。下面我们将详细讨论它们的使用场景和提供示例。

links()函数的使用场景和示例:

links()函数通过解析HTML页面,可以提取页面中包含的所有绝对路径的链接。这些链接可能是其他网页的链接,也可能是图片、视频等资源的链接。links()函数对于需要获取所有绝对路径链接的场景非常有用。

示例:

from bs4 import BeautifulSoup
import requests

# 定义一个函数,利用links()函数提取页面中的链接
def get_links(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    # 使用links()函数提取链接
    links = soup.links
    # 打印所有链接
    for link in links:
        print(link.get('href'))

# 调用函数,提取指定页面的链接
get_links('https://www.example.com')

上述示例中,我们使用requests库发送HTTP请求,获取网页的HTML内容。然后,使用BeautifulSoup库解析HTML内容,并调用links()函数提取所有链接。最后,使用循环将每个链接打印出来。

hrefs()函数的使用场景和示例:

hrefs()函数通过解析HTML页面,可以提取页面中包含的相对路径的链接。相对路径链接是相对于当前页面的URL来定义的链接。hrefs()函数对于需要获取相对路径链接的场景非常有用。

示例:

from bs4 import BeautifulSoup
import requests

# 定义一个函数,利用hrefs()函数提取页面中的相对路径链接
def get_hrefs(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    # 使用hrefs()函数提取相对路径链接
    hrefs = soup.hrefs
    # 打印所有相对路径链接
    for href in hrefs:
        print(href.get('href'))

# 调用函数,提取指定页面的相对路径链接
get_hrefs('https://www.example.com')

上述示例中,我们使用requests库发送HTTP请求,获取网页的HTML内容。然后,使用BeautifulSoup库解析HTML内容,并调用hrefs()函数提取所有相对路径链接。最后,使用循环将每个链接打印出来。

总结:

links()函数和hrefs()函数都是用来提取HTML页面中的链接的方法。links()函数返回的是绝对路径的链接,而hrefs()函数返回的是相对路径的链接。根据具体的需求,可以灵活地选择使用这两个方法。