国产精品主播一区二区-国产一级不卡毛片-日本少妇中出-国产视频第二页-青草精品视频-亚洲熟妇丰满多毛xxxx-日韩福利在线-成年人免费观看在线视频-久久久www-91在线视频观看无毒不卡-999国产精品-91久久爽久久爽爽久久片-和搜子居同的日子2hd高清看-鬼眼 电影-中文在线精品-综合网久久-国产精品美女久久久久久

動(dòng)態(tài)ip教你如何用爬蟲(chóng)實(shí)現(xiàn)前端頁(yè)面渲染

動(dòng)態(tài)ip教你如何用爬蟲(chóng)渲染前端頁(yè)面!很久以前,幾乎大部分網(wǎng)站都是由后端進(jìn)行渲染的,即在服務(wù)器端組裝完整的HTML頁(yè)面,然后將完整的頁(yè)面返回前端進(jìn)行顯示。最近,隨著AJAX技術(shù)的不斷普及和AngularJS等SPA框架的廣泛應(yīng)用,越來(lái)越多的頁(yè)面在前端呈現(xiàn)。
 
 
 
不知道大家有沒(méi)有聽(tīng)說(shuō)前端渲染相比后端渲染不利于SEO,因?yàn)閷?duì)網(wǎng)頁(yè)爬蟲(chóng)不友好。原因是前端渲染的頁(yè)面需要在瀏覽器端執(zhí)行JavaScript代碼(AJAX請(qǐng)求)來(lái)獲取后端數(shù)據(jù),然后才能組裝成完整的HTML頁(yè)面。
 
 
 
目前針對(duì)這種情況的解決方案有很多,最常用的是PhantomJS、puppeteer等無(wú)頭瀏覽器工具,相當(dāng)于在網(wǎng)絡(luò)爬蟲(chóng)中構(gòu)建一個(gè)瀏覽器內(nèi)核,先對(duì)抓取的頁(yè)面進(jìn)行渲染(執(zhí)行Javascript腳本),然后對(duì)頁(yè)面內(nèi)容進(jìn)行抓取。
 
 
 
但是,要使用這種技術(shù),通常都需要使用Javascript開(kāi)發(fā)網(wǎng)絡(luò)爬蟲(chóng)工具,這對(duì)于像我這樣習(xí)慣于編寫(xiě)Python的人來(lái)說(shuō),確實(shí)很痛苦。
 
 
 
直到有一天,god kennethreitz發(fā)布了開(kāi)源項(xiàng)目requests-html,在項(xiàng)目介紹中看到了FullJavaScriptsupport這句話(huà)!眼淚奪眶而出,就是這樣!該項(xiàng)目在GitHub上發(fā)布不到三天,明星數(shù)量就達(dá)到了5000多位,可見(jiàn)其影響力。
 
 
 
requests-html為什么這么受歡迎?
 
 
 
幾乎所有寫(xiě)過(guò)Python的人都會(huì)使用這樣的HTTP庫(kù)作為請(qǐng)求。毫不夸張地說(shuō),它是最好的HTTP庫(kù)(不限于編程語(yǔ)言),它的引入也是當(dāng)之無(wú)愧的,HTTPRequestsforHumans。因此,蝗蟲(chóng)和HttpRunner都是基于請(qǐng)求開(kāi)發(fā)的。
 
 
 
而requests-HTML是kennethreitz基于請(qǐng)求開(kāi)發(fā)的另一個(gè)開(kāi)源項(xiàng)目。除了重用請(qǐng)求的所有功能外,它還實(shí)現(xiàn)了html頁(yè)面的解析,即支持Javascript的執(zhí)行,并使用CSS和XPath提取HTML頁(yè)面元素,這些都是編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)工具非常必要的功能。
 
 
 
在Javascript執(zhí)行方面,requests-html沒(méi)有構(gòu)建自己的輪子,而是依賴(lài)pyppeteer作為開(kāi)源項(xiàng)目。還記得前面提到的木偶師項(xiàng)目,是GoogleChrome對(duì)NodeAPI的官方實(shí)現(xiàn);pyppeteer項(xiàng)目相當(dāng)于使用Python語(yǔ)言對(duì)木偶師的非官方實(shí)現(xiàn),幾乎具備了木偶師的所有功能。理清了以上關(guān)系,相信大家對(duì)requests-html會(huì)有更好的理解。
 
 
 
在用法上,requests-html也很簡(jiǎn)單,它的用法和requests幾乎一樣,只是它有更多的呈現(xiàn)功能。
 
動(dòng)態(tài)IP模擬器
 
 
 
執(zhí)行render()后,返回的是呈現(xiàn)的頁(yè)面內(nèi)容。
 
兴安县| 余庆县| 商都县| 祁东县| 周宁县| 建阳市| 隆德县| 青阳县| 沅陵县| 广州市| 伊宁市| 城市| 达孜县| 浦北县| 明光市| 克什克腾旗| 洞口县| 安国市| 邓州市| 玛曲县| 泽州县| 建湖县| 长沙县| 罗江县| 巩留县| 南开区| 九江市| 二连浩特市| 松潘县| 平凉市| 阜城县| 海伦市| 石狮市| 象山县| 黑河市| 尚志市| 讷河市| 东辽县| 若羌县| 家居| 扶绥县|