📜  BeautifulSoup – 从 HTML 中抓取段落

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

BeautifulSoup – 从 HTML 中抓取段落

在本文中,我们将讨论如何使用 Beautiful Soup 从 HTML 中删除段落

方法一:使用bs4和urllib。

所需模块:

  • bs4: Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。用于安装模块-
pip install bs4.
  • urllib: urllib 是一个包,它收集了几个用于处理 URL 的模块。它也可以以相同的方式安装,它大部分是内置在环境本身中的。
pip install urllib

html 文件包含几个标签,比如锚标签 、span 标签 、段落标签

等。所以,美丽的汤帮助我们解析 html 文件并获得我们想要的输出,例如获取段落来自特定的 url/html 文件。

解释:

导入模块urllibbs4后,我们将提供一个带有要读取的 url 的变量, urllib.request.urlopen()函数将请求转发到服务器以打开 url。 BeautifulSoup()函数帮助我们解析 html 文件或者你说 html 中的编码。此处与find_all()一起使用的循环查找包含段落标记

的所有标记,并且它们之间的文本由get_text()方法收集。

下面是实现:

Python3
# importing modules
import urllib.request 
from bs4 import BeautifulSoup
  
# providing url
url = "https://www.geeksforgeeks.org/how-to-automate-an-excel-sheet-in-python/?ref=feed"
  
# opening the url for reading
html = urllib.request.urlopen(url)
  
# parsing the html file
htmlParse = BeautifulSoup(html, 'html.parser')
  
# getting all the paragraphs
for para in htmlParse.find_all("p"):
    print(para.get_text())


Python3
# import module 
import requests 
import pandas as pd 
from bs4 import BeautifulSoup 
  
# link for extract html data 
def getdata(url): 
    r = requests.get(url) 
    return r.text 
  
htmldata = getdata("https://www.geeksforgeeks.org/how-to-automate-an-excel-sheet-in-python/?ref=feed") 
soup = BeautifulSoup(htmldata, 'html.parser') 
data = '' 
for data in soup.find_all("p"): 
    print(data.get_text())


输出:

方法二:使用requests和bs4

所需模块:

  • bs4: Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。这个模块没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install bs4
  • 请求:请求允许您非常轻松地发送 HTTP/1.1 请求。这个模块也没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install requests

方法:

  • 导入模块
  • 创建一个 HTML 文档并在代码中指定 '

    ' 标签

  • 将 HTML 文档传递给 Beautifulsoup()函数
  • 使用“P”标签从 Beautifulsoup 对象中提取段落
  • 使用 get_text() 从 HTML 文档中获取文本。

代码:

蟒蛇3

# import module 
import requests 
import pandas as pd 
from bs4 import BeautifulSoup 
  
# link for extract html data 
def getdata(url): 
    r = requests.get(url) 
    return r.text 
  
htmldata = getdata("https://www.geeksforgeeks.org/how-to-automate-an-excel-sheet-in-python/?ref=feed") 
soup = BeautifulSoup(htmldata, 'html.parser') 
data = '' 
for data in soup.find_all("p"): 
    print(data.get_text()) 

输出: