使用BeautifulSoup从HTML中抓取网址链接
互联网是一个数据池,只要具备正确的技能,人们就可以使用这些数据来获取大量新信息。您可以将数据复制粘贴到您的excel或CSV文件中,但这也既耗时又昂贵。Web抓取、Web收集或Web数据提取是用于从网站中提取数据的数据抓取。
BeautifulSoup是Python提供的一个流行的库,用于从网络上抓取数据。为了充分利用它,您只需要具备HTML的基本知识,这在指南中有所介绍。本文晓得博客为你介绍使用BeautifulSoup从HTML中抓取网址链接。
推荐:Python函数对象
网页的组件
如果您了解基本的HTML,则可以跳过此部分。任何网页的基本语法是:
<!DOCTYPE html>
<html markdown="1">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<h1 class = "heading"> My first Web Scraping with Beautiful soup </h1>
<p>Let's scrap the website using python. </p>
<body>
</html>
HTML中的每个标记都可以具有有助于唯一标识元素的属性信息(即类、id、href和其他有用信息)。
抓取任何网站的步骤
在本文中,我们将了解如何使用Python从URL或HTML文档中提取所有链接。所需的库:
bs4(BeautifulSoup):它是python中的一个库,可以很容易地从网页中抓取信息,并有助于从HTML和XML文件中提取数据。这个库需要从外部下载,因为它不随Python包一起提供。要安装此库,请在终端中键入以下命令。
pip install bs4
requests:这个库可以很容易地发送HTTP请求和获取网页内容。这个库也需要从外部下载,因为它不是随Python包一起提供的。要安装此库,请在终端中键入以下命令。
pip install requests
理解和检查网页源码数据
现在您已经了解了基本的HTML及其标签,您需要首先检查要抓取的页面。检查是网页抓取中最重要的工作;在不了解网页结构的情况下,很难获得所需的信息。为了帮助进行检查,每个浏览器(如Google Chrome 或 Mozilla Firefox)都配备了一个名为开发者工具的便捷工具。
要了解您希望抓取的任何元素,只需右键单击该文本并检查元素的标签和属性。
BeautifulSoup从HTML中抓取链接的步骤:
- 导入所需的库(bs4 和 requests)
- 创建一个函数,通过将 URL 传递给它,使用 requests.get() 方法从 URL 获取 HTML 文档。
- 创建 ParseTree 对象,即汤对象 BeautifulSoup(),将上面提取的 HTML文档 和 Python内置的 HTML解析器 传递给它。
- 使用 a 标签从BeautifulSoup对象中提取链接。
- 从所有锚标记对象的表单中获取实际URL,get() 并将 href参数传递给它。
- URL的标题 get() 并将标题参数传递给它。
执行:
from bs4 import BeautifulSoup
import requests
import re
# function to extract html document from given url
def getHTMLdocument(url):
response = requests.get(url)
return response.text
url_to_scrape = "https://top.baidu.com/board?tab=realtime"
html_document = getHTMLdocument(url_to_scrape)
soup = BeautifulSoup(html_document, 'html.parser')
# find all the anchor tags with "href"
for link in soup.find_all('a',
attrs={'href': re.compile("^https://")}):
# display the actual urls
print(link.get('href'))
输出:
https://www.baidu.com/s?wd=%E5%86%B0%E9%9B%AA%E4%B8%BA%E5%AA%92+%E5%85%B1%E8%B5%B4%E5%86%AC%E5%A5%A5%E4%B9%8B%E7%BA%A6&sa=fyb_news&rsv_dl=fyb_news
https://www.baidu.com/s?wd=%E5%86%B0%E9%9B%AA%E4%B8%BA%E5%AA%92+%E5%85%B1%E8%B5%B4%E5%86%AC%E5%A5%A5%E4%B9%8B%E7%BA%A6&sa=fyb_news&rsv_dl=fyb_news
https://www.baidu.com/s?wd=31%E7%9C%81%E4%BB%BD%E6%96%B0%E5%A2%9E%E6%9C%AC%E5%9C%9F%E7%A1%AE%E8%AF%8A56%E4%BE%8B+%E5%B9%BF%E8%A5%BF33%E4%BE%8B&sa=fyb_news&rsv_dl=fyb_news
https://www.baidu.com/s?wd=31%E7%9C%81%E4%BB%BD%E6%96%B0%E5%A2%9E%E6%9C%AC%E5%9C%9F%E7%A1%AE%E8%AF%8A56%E4%BE%8B+%E5%B9%BF%E8%A5%BF33%E4%BE%8B&sa=fyb_news&rsv_dl=fyb_news
.......
总结
以上是晓得博客为你介绍的使用BeautifulSoup从HTML中抓取网址链接的全部内容,现在已经了解了基本的HTML及其标签,以及简单的使用Python代码来实现抓取网站数据。希望对你有所帮助。
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折