📜  BeautifulSoup – 从 HTML 中抓取链接

📅  最后修改于: 2022-05-13 01:55:45.569000             🧑  作者: Mango

BeautifulSoup – 从 HTML 中抓取链接

先决条件:使用 BeautifulSoup 在Python中实现 Web Scraping

在本文中,我们将了解如何使用Python从 URL 或 HTML 文档中提取所有链接。

需要的库:

  • bs4 (BeautifulSoup):它是Python中的一个库,可以轻松地从网页中抓取信息,并有助于从 HTML 和 XML 文件中提取数据。这个库需要从外部下载,因为它不随Python包一起提供。要安装此库,请在终端中键入以下命令。
pip install bs4
  • requests:这个库可以很容易地发送HTTP请求并获取网页内容。这个库也需要从外部下载,因为它不随Python包一起提供。要安装此库,请在终端中键入以下命令。
pip install requests

应遵循的步骤:

  • 导入所需的库(bs4 和 requests)
  • 创建一个函数,通过将 URL 传递给它,使用requests.get()方法从 URL 获取 HTML 文档。
  • 创建一个解析树对象,即使用BeautifulSoup()方法的汤对象,将上面提取的 HTML 文档和Python内置的 HTML 解析器传递给它。
  • 使用a标签从 BeautifulSoup 对象中提取链接。
  • 使用get()方法从表单中获取所有锚标记对象的实际 URL,并将href参数传递给它。
  • 此外,您可以使用get()方法获取 URL 的标题并将标题参数传递给它。

执行:

Python3
# import necessary libraries
from bs4 import BeautifulSoup
import requests
import re
  
  
# function to extract html document from given url
def getHTMLdocument(url):
      
    # request for HTML document of given url
    response = requests.get(url)
      
    # response will be provided in JSON format
    return response.text
  
    
# assign required credentials
# assign URL
url_to_scrape = "https://practice.geeksforgeeks.org/courses/"
  
# create document
html_document = getHTMLdocument(url_to_scrape)
  
# create soap object
soup = BeautifulSoup(html_document, 'html.parser')
  
  
# find all the anchor tags with "href" 
# attribute starting with "https://"
for link in soup.find_all('a', 
                          attrs={'href': re.compile("^https://")}):
    # display the actual urls
    print(link.get('href'))


输出: