使用 Python 从网页提取标题


在 Python 中,我们可以使用网页抓取来从网页提取标题。网页抓取是从网站或网页提取数据的过程。在本文中,我们将使用 Python 中的 Requests 和 BeautifulSoup 库来抓取网页的标题。

从网页提取标题

方法 1:使用 Request 和 Beautiful Soup 库

我们可以使用 Python 的 Request 和 Beautiful Soup 库从网页提取标题。Requests 库用于向网站发送 HTTP 请求并获取其响应。然后,我们使用响应对象提取网页的 HTML 内容。

示例

在下面的示例中,我们提取维基百科主页的标题。我们使用 Request 库向维基百科页面 URL 发送 GET 请求,并将响应对象存储在 response 变量中。

然后,我们可以使用 Beautiful Soup 对象解析在响应对象中接收到的 HTML 内容,并使用 **soup.title** 属性提取网页的 title 标签。然后,我们可以提取字符串属性并将其存储在 title 变量中。

import requests
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
response = requests.get(url)

soup = BeautifulSoup(response.content, 'html.parser')
title = soup.title.string

print(title)

输出

Wikipedia

方法 2:使用 urllib 和 BeautifulSoup 提取标题

urllib 和 BeautifulSoup 方法用于通过打开 URL 并使用 urllib 库检索网页的 HTML 内容来从网页提取标题。使用 HTML 内容创建一个 BeautifulSoup 对象,并且可以使用“soup.title”属性提取网页的 title 标签。

示例

在下面的示例中,我们使用 urllib 库打开 URL 并检索网页的 HTML 内容。然后,我们使用 **'html.parser'** 解析器使用网页的 HTML 内容创建一个 BeautifulSoup 对象。

然后,我们可以使用 **'soup.title'** 属性提取网页的 title 标签。最后,我们使用“string”属性提取 title 标签的字符串内容并将其存储在“title”变量中。然后,我们将网页的标题打印到控制台。

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
html_page = urlopen(url)
soup = BeautifulSoup(html_page, 'html.parser')
title = soup.title.string

print(title)

输出

Wikipedia

方法 3:使用 selenium 和 BeautifulSoup 提取标题

selenium 和 BeautifulSoup 方法用于通过使用 selenium 库打开 URL 并检索网页的 HTML 内容来从网页提取标题。创建一个 Chrome webdriver 并用于导航到网页。使用 webdriver 的“page_source”属性检索网页的 HTML 内容。使用 HTML 内容创建一个 BeautifulSoup 对象,并且可以使用“soup.title”属性提取网页的 title 标签。

示例

在下面的示例中,我们使用 selenium 库打开 URL 并检索网页的 HTML 内容。我们创建一个 Chrome webdriver 并使用它导航到网页。然后,我们使用 webdriver 的“page_source”属性检索网页的 HTML 内容。

我们使用“html.parser”解析器使用网页的 HTML 内容创建一个 BeautifulSoup 对象。然后,我们可以使用“soup.title”属性提取网页的 title 标签。最后,我们使用“string”属性提取 title 标签的字符串内容并将其存储在“title”变量中。然后,我们将网页的标题打印到控制台。

from selenium import webdriver
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
driver = webdriver.Chrome()
driver.get(url)

html_page = driver.page_source
soup = BeautifulSoup(html_page, 'html.parser')
title = soup.title.string

print(title)

driver.quit()

输出

Wikipedia

方法 4:使用正则表达式提取标题

正则表达式方法用于通过使用 Requests 库向 URL 发送 GET 请求并存储响应对象来从网页提取标题。然后对网页的 HTML 内容进行解码并存储在变量中。定义一个正则表达式模式以匹配网页的 title 标签。正则表达式模式的“search”方法用于在网页的 HTML 内容中查找模式的第一个匹配项。可以使用“group(1)”方法提取第一个匹配组的字符串内容,并获取网页的标题。

示例

在下面的示例中,我们使用正则表达式提取网页的标题。我们使用 Requests 库向 URL 发送 GET 请求,并将响应对象存储在“response”变量中。

然后,我们使用“utf-8”编码对网页的 HTML 内容进行解码,并将其存储在“html_content”变量中。我们定义一个正则表达式模式以匹配网页的 title 标签。

我们使用正则表达式模式的“search”方法在网页的 HTML 内容中查找模式的第一个匹配项。我们使用“group(1)”方法提取第一个匹配组的字符串内容,并将其存储在“title”变量中。然后,我们将网页的标题打印到控制台。

import requests

url = 'https://www.wikipedia.org/'
response = requests.get(url)
html_content = response.content.decode('utf-8')

title_pattern = re.compile('(.+?) - 技术教程')
match = title_pattern.search(html_content)
title = match.group(1)

print(title)

输出

Wikipedia

结论

在本文中,我们讨论了使用 Python 中的 Requests 和 Beautiful Soup 库从网页提取标题的过程。Request 库用于向网站 URL 发送 HTTP 请求并获取 HTML 内容作为响应。然后使用 Beautiful Soup 库解析 HTML 内容并从 HTML 内容中提取所需的标题。

更新于: 2023年7月10日

4K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.