前言:
现在朋友们对“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抓取