龙空技术网

通过示例让你了解什么是网页抓取

自由坦荡的湖泊AI 37

前言:

现在朋友们对“css抓取”都比较关切,各位老铁们都需要分析一些“css抓取”的相关文章。那么小编也在网摘上收集了一些有关“css抓取””的相关文章,希望小伙伴们能喜欢,同学们快快来了解一下吧!

什么是网页抓取?

语网络抓取是指从网站获取大量数据的过程。它们是使用自动化脚本和软件完成的,这使得提取信息更容易。

例如,如果您想比较 Flipkart 上所有可用 iPhone 的价格和评级。您可以提取每个产品的详细信息及其名称、价格、评级以及显示给您的任何信息。

个网站都是使用 HTML(超文本标记语言)编写的。HTML定义了一个网站的结构!

看到的文本(如名称、价格和评级)都写在 HTML 代码中的某个位置。需要做的就是检查代码,找到每个元素存在的位置,然后使用抓取工具抓取信息。

这就是 HTML 代码的样子。在真实网站上,代码会更加复杂和冗长。

<!DOCTYPE html><html>  <head>    <title>Cities</title>  </head>    <body>      <div class="city">      <h2>London</h2>      <p>Capital of England.</p>    </div>        <div class="city">      <h2>Paris</h2>      <p>Capital of France.</p>    </div>        <div class="city">      <h2>Tokyo</h2>      <p>Capital of Japan.</p>    </div>    </body></html

还使用 CSS 等语言来设置网站样式,使用 JavaScript 来制作动态网页,以及其他用于不同目的的框架。但是,如果没有 HTML,这些语言都无法在网站上正常工作。

如果不懂HTML,那根本不是问题。这是一种非常简单的语言,很容易理解。但是,作为初学者,请记住,没有 HTML 就不可能设计一个网站。

如果能得到一个页面的完整HTML,就可以从网站上抓取想要的任何数据!

抓取网络的工具

当涉及到这个问题时,有几种选择。可以自己编写网络爬虫,也可以从互联网上为小型项目获取免费的网络爬虫

也有像 Nimble 这样的付费网络爬虫可用。当它们提供了许多功能,可以发出数百万个请求而不会被网站阻止。

Python 作为一种编程语言,有很多有用的库可用于网页抓取。这些库帮助我们轻松地从多个网站收集信息。

Python 中用于网页抓取的一些重要和常见的库是:

Request— 它是一个用于向网站发出 HTTP 请求的库。可以把这看作是向网站提出要求,反过来,该网站会给我们一个回应,提供所要求的东西。用它来获取网站的 HTML 代码。

Beautiful soup — 它是一个用于从接收到的 HTML 代码中提取所需数据的库。通过提供某些方法来从复杂的 HTML 页面中搜索和提取正确的数据,这使工作更容易。这个库最适合初学者。

Selenum— 它是一个用于在支持 JavaScript 的网页上抓取数据的库。一些网站要求我们在抓取之前与按钮和其他元素进行交互。这些点击可以使用 Selenium 自动进行。对于初学者来说,这很难,需要一些设置。

这些是一些经常使用的库,用于抓取网络。像 Scrapy 这样的库也用于开发网络爬虫。

一个简单的网页抓取示例

向您展示一个非常简单的 Python 代码,以获取 Flipkart 的 iPhone 产品页面的完整 HTML 代码。不需要理解代码。这个例子是为了展示抓取是多么容易。

import requestsfrom bs4 import BeautifulSoupurl = ";r = requests.get(url)soup = BeautifulSoup(r.text, "lxml")print(soup.prettify())

通过这些最少的代码行,可以获得我上面显示的页面的完整 HTML 代码。最终输出非常大,因此这里只有部分输出:

<!DOCTYPE html><html lang="en">  <head>    <meta content="IE=Edge" http-equiv="X-UA-Compatible"/>    <meta content="102988293558" property="fb:page_id"/>    <meta content="noodp" name="robots"/>    <title>       iPhone -  Buy Apple iPhones online at Best Prices in INDIA at Flipkart.com    </title>  </head>  <body>    <div>      <div class="CXW8mj" style="height:200px;width:200px">        <img alt="APPLE iPhone 13 (Blue, 128 GB)" class="_396cs4" loading="eager" src=";/>      </div>    </div>    <div class="_4rR01T">      APPLE iPhone 13 (Blue, 128 GB)    </div>    <div class="gUuXy-">      <span class="_1lRcqv" id="productRating_LSTMOBG6VF5SMXPNQHGH3DY6Z_MOBG6VF5SMXPNQHG_">        <div class="_3LWZlK">          4.7          <img class="_1wB99o" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTYuNSA5LjQzOWwtMy42NzQgMi4yMy45NC00LjI2LTMuMjEtMi44ODMgNC4yNTQtLjQwNEw2LjUuMTEybDEuNjkgNC4wMSA0LjI1NC40MDQtMy4yMSAyLjg4Mi45NCA0LjI2eiIvPjwvc3ZnPg=="/>        </div>      </span>    </div>  </body></html

标签: #css抓取