溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

動態(tài)ip代理中如何用爬蟲實(shí)現(xiàn)前端頁面渲染

發(fā)布時間:2022-01-11 10:53:57 來源:億速云 閱讀:94 作者:柒染 欄目:編程語言

本篇文章為大家展示了動態(tài)ip代理中如何用爬蟲實(shí)現(xiàn)前端頁面渲染,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

  在很早以前,幾乎絕大多數(shù)網(wǎng)站全全都是利用后端渲染的,即在服務(wù)器端組裝形成完整的HTML頁面,隨后再將完整頁面返回給前端進(jìn)行展現(xiàn)。而近期,隨著AJAX技術(shù)的不斷普及,和AngularJS這類SPA框架的廣泛應(yīng)用,前端渲染的頁面越來越多。

  不知大伙兒有沒有聽說過,前端渲染相比于后端渲染,是不利于進(jìn)行SEO的,因?yàn)閷W(wǎng)絡(luò)爬蟲不友好。究其原因,就是因?yàn)榍岸虽秩镜捻撁媸切枰跒g覽器端執(zhí)行JavaScript代碼(即AJAX請求)才能獲取后端數(shù)據(jù),隨后才能拼裝成完整的HTML頁面。

  針對這類情況,當(dāng)前也是已經(jīng)有很多解決方案,最常用的就是借助PhantomJS、puppeteer這類Headless瀏覽器工具,相當(dāng)于在網(wǎng)絡(luò)爬蟲中內(nèi)置1個瀏覽器內(nèi)核,對爬取的頁面先渲染(執(zhí)行Javascript腳本),隨后再對頁面內(nèi)容進(jìn)行爬取。

  不過,要使用這類技術(shù),通常全全都是需要使用Javascript來開發(fā)網(wǎng)絡(luò)爬蟲工具,對于我這種寫慣了Python的人來說的確有些痛苦。

  直到某1天,kennethreitz大神發(fā)布了開源項(xiàng)目requests-html,看到項(xiàng)目介紹中的那句FullJavaScriptsupport!時不禁熱淚盈眶,就是它了!該項(xiàng)目在GitHub上發(fā)布后不到三天,star數(shù)就達(dá)到5000以上,足見其影響力。

  requests-html為啥會這么火?

  寫過Python的人,幾乎全都會使用requests這么1個HTTP庫,說它是最好的HTTP庫1點(diǎn)也是不夸張(不限編程語言),對于其介紹語HTTPRequestsforHumans也是當(dāng)之無愧。也是是因?yàn)檫@個原因,Locust和HttpRunner全全都是基于requests來進(jìn)行開發(fā)的。

  而requests-html,則是kennethreitz在requests的基礎(chǔ)上開發(fā)的另1個開源項(xiàng)目,除了可以復(fù)用requests的全部功能外,還實(shí)現(xiàn)了對HTML頁面的解析,即支持對Javascript的執(zhí)行,和利用CSS和XPath對HTML頁面元素進(jìn)行提取的功能,這些全全都是編寫網(wǎng)絡(luò)爬蟲工具非常需要的功能。

  在實(shí)現(xiàn)Javascript執(zhí)行方面,requests-html也是并沒有自己造輪子,而是借助了pyppeteer這個開源項(xiàng)目。還記得前面提到的puppeteer項(xiàng)目么,這是GoogleChrome官方實(shí)現(xiàn)的NodeAPI;而pyppeteer這個項(xiàng)目,則相當(dāng)于是使用Python語言對puppeteer的非官方實(shí)現(xiàn),幾乎具有puppeteer的所有功能。

  理清了以上關(guān)系后,相信大伙兒對requests-html也是就有了更好的理解。

  在使用方面,requests-html也是十分簡單,用法與requests幾乎相同,只是多了render功能。

動態(tài)ip代理中如何用爬蟲實(shí)現(xiàn)前端頁面渲染

  在執(zhí)行render()之后,返回的就是經(jīng)過渲染后的頁面內(nèi)容。

上述內(nèi)容就是動態(tài)ip代理中如何用爬蟲實(shí)現(xiàn)前端頁面渲染,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI