使用BeautifulSoup从HTML中抓取网址链接

使用BeautifulSoup从HTML中抓取网址链接

  使用BeautifulSoup从HTML中抓取网址链接

  互联网是一个数据池,只要具备正确的技能,人们就可以使用这些数据来获取大量新信息。您可以将数据复制粘贴到您的excel或CSV文件中,但这也既耗时又昂贵。Web抓取、Web收集或Web数据提取是用于从网站中提取数据的数据抓取。

使用BeautifulSoup从HTML中抓取网址链接

  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和其他有用信息)。

网页的组件

  推荐:如何使用BeautifulSoup抓取网页

  抓取任何网站的步骤

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

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

pip install bs4

  requests:这个库可以很容易地发送HTTP请求和获取网页内容。这个库也需要从外部下载,因为它不是随Python包一起提供的。要安装此库,请在终端中键入以下命令。

pip install requests

  理解和检查网页源码数据

  现在您已经了解了基本的HTML及其标签,您需要首先检查要抓取的页面。检查是网页抓取中最重要的工作;在不了解网页结构的情况下,很难获得所需的信息。为了帮助进行检查,每个浏览器(如Google Chrome 或 Mozilla Firefox)都配备了一个名为开发者工具的便捷工具。

  要了解您希望抓取的任何元素,只需右键单击该文本并检查元素的标签和属性。

理解和检查网页源码数据

  推荐:零基础如何开始学习Python

  BeautifulSoup从HTML中抓取链接的步骤:

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代码来实现抓取网站数据。希望对你有所帮助。

  推荐:Beautiful Soup使用教程

给文章评分

ThemeForest 模板套件
可视化创建WordPress网站

发表评论

您的电子邮箱地址不会被公开。

Scroll to Top