真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python爬蟲(chóng)指的是什么

小編給大家分享一下Python爬蟲(chóng)指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比德化網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式德化網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋德化地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

什么是爬蟲(chóng),講點(diǎn)通俗易懂的,爬蟲(chóng)就是爬取網(wǎng)頁(yè),從中按照一定規(guī)則提取信息,重復(fù)以上過(guò)程自動(dòng)化重復(fù)完成的程序。

爬蟲(chóng)的核心

一只爬蟲(chóng),第一件事情就是要爬取網(wǎng)頁(yè),這里主要是指獲取網(wǎng)頁(yè)的源代碼。在網(wǎng)頁(yè)的源代碼里,會(huì)含有我們所需要的信息,而我們要做的事情就是從源代碼中將這些信息提取出來(lái)。

我們請(qǐng)求網(wǎng)頁(yè)的時(shí)候, Python 為我們提供了很多庫(kù)來(lái)做這件事情,比如官方提供的 urllib ,以及第三方提供的 requests 、 Aiohttp 等。

我們可以使用這些庫(kù)來(lái)發(fā)送 HTTP 請(qǐng)求,獲取響應(yīng)的數(shù)據(jù),得到響應(yīng)之后,我們只需要解析其中 body 部分的數(shù)據(jù),就可以獲得網(wǎng)頁(yè)的源代碼。

獲取到源代碼以后,我們接下來(lái)的工作就是解析源代碼,從中提取出我們需要的數(shù)據(jù)。

提取數(shù)據(jù)最基礎(chǔ)也是最常用的是使用正則表達(dá)式的方式的,但是這種方式比較復(fù)雜,也比較容易出錯(cuò),不過(guò)不得不說(shuō),一個(gè)正則表達(dá)式寫(xiě)的非常厲害的人,完全用不著下面的這些解析類庫(kù),這是一個(gè)萬(wàn)能的方法。

悄悄的說(shuō)一句,小編的正則表達(dá)式寫(xiě)的也不好,才會(huì)使用到這些由第三方提供的類庫(kù)。

用于提取數(shù)據(jù)的類庫(kù)有 Beautiful Soup 、 pyquery 、 lxml 等等。使用這些庫(kù),我們可以高效快速地從 HTML 中提取網(wǎng)頁(yè)信息,如節(jié)點(diǎn)的屬性、文本值等。

從源代碼中提取到數(shù)據(jù)以后,我們會(huì)對(duì)數(shù)據(jù)進(jìn)行保存,這里的保存形式多種多樣,可以直接保存成 txt 、 json 、 Excel 文件等等,也可以保存至數(shù)據(jù)庫(kù),如 MySQL 、 Oracle 、 SQLServer 、 MongoDB 等等。

抓取的數(shù)據(jù)格式

一般而言,我們抓取到的都是 HTML 的網(wǎng)頁(yè)源代碼,這個(gè)是我們看得到的、常規(guī)的、直觀的網(wǎng)頁(yè)信息。

但是有些信息,并不是直接和 HTML 一起返回至網(wǎng)頁(yè)的,會(huì)存在各種各樣的 API 接口,這種接口返回的數(shù)據(jù)現(xiàn)在大多數(shù)是 JSON 的格式,也有一些會(huì)返回 XML 的數(shù)據(jù)格式,還會(huì)有一些個(gè)別的奇葩的接口直接返回程序猿自定義的字符串。這種 API 數(shù)據(jù)接口就需要具體問(wèn)題具體分析了。

還有一些信息,比如各大圖片站、視頻站(如抖音、 B站),我們想要爬取的信息是圖片或者視頻,這些信息是已二進(jìn)制的形式存在的,我們需要將這些二進(jìn)制的數(shù)據(jù)爬取下來(lái)再進(jìn)行轉(zhuǎn)儲(chǔ)。

此外,我們還能抓取到一些資源文件,如 CSS 、 JavaScript 等腳本資源,有的還會(huì)有一些 woff 等字體信息。這些信息是一個(gè)網(wǎng)頁(yè)組成不可或缺的元素,只要瀏覽器能訪問(wèn)到的,我們都可以將其爬取下來(lái)。

現(xiàn)代前端頁(yè)面爬取

很多時(shí)候,我們使用 HTTP 請(qǐng)求庫(kù)爬取網(wǎng)頁(yè)源代碼時(shí),爬取到的信息和我們?cè)诰W(wǎng)頁(yè)上看到的信息完全不一樣,只有短短的幾行。

這是因?yàn)樽罱@幾年,前端技術(shù)突飛猛進(jìn),大量的采用前端模塊化工具來(lái)構(gòu)建前端頁(yè)面,比較常用的框架有 Vue 、 React 等等。

導(dǎo)致我們獲取到的網(wǎng)頁(yè)只有一個(gè)空殼子,例如這種:



  
    
    
    
    favicon.ico">
    演示項(xiàng)目
  
  
  
    
    
                 

代碼來(lái)源是博主平時(shí)做的一些小東西,其中博主已經(jīng)省略大量引入的 JavaScript。

body 節(jié)點(diǎn)里面只有一個(gè) id 為 app 的節(jié)點(diǎn),但是需要注意在 body 節(jié)點(diǎn)的最后引入了 JavaScript 文件,它們負(fù)責(zé)整個(gè)網(wǎng)頁(yè)的渲染。

在瀏覽器打開(kāi)這個(gè)頁(yè)面后,首先會(huì)加載這個(gè) HTML 的內(nèi)容,接著會(huì)發(fā)現(xiàn)有 JavaScript 的腳本文件加載,獲取到這些腳本文件后,開(kāi)始執(zhí)行其中的代碼,而 JavaScript 腳本文件則會(huì)修改整個(gè)頁(yè)面的 HTML 代碼,向其中添加節(jié)點(diǎn),從而完成整個(gè)頁(yè)面的渲染。

但是當(dāng)我們使用請(qǐng)求庫(kù)去請(qǐng)求這個(gè)頁(yè)面的時(shí)候,只能獲得當(dāng)前的 HTML 的內(nèi)容,它并不會(huì)去幫我們獲取這個(gè) JavaScript 腳本文件并且?guī)臀覀儓?zhí)行這個(gè)腳本文件渲染整個(gè) HTML DOM 節(jié)點(diǎn),我們當(dāng)然也就看不到瀏覽器當(dāng)中看到的內(nèi)容。

這也解釋了為什么有時(shí)我們得到的源代碼和瀏覽器中看到的不一樣。

當(dāng)然,遇到這種情況也不要慌,我們還可以使用Selenium、Splash這樣的庫(kù)來(lái)實(shí)現(xiàn)模擬瀏覽器中的 JavaScript 渲染。

以上是Python爬蟲(chóng)指的是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁(yè)題目:Python爬蟲(chóng)指的是什么
文章地址:http://weahome.cn/article/jgpggg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部