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

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

動態(tài)ip教你如何用爬蟲渲染前端頁面!很久以前,幾乎大部分網(wǎng)站都是由后端進(jìn)行渲染的,即在服務(wù)器端組裝完整的HTML頁面,然后將完整的頁面返回前端進(jìn)行顯示。最近,隨著AJAX技術(shù)的不斷普及和AngularJS等SPA框架的廣泛應(yīng)用,越來越多的頁面在前端呈現(xiàn)。
 
 
 
不知道大家有沒有聽說前端渲染相比后端渲染不利于SEO,因?yàn)閷W(wǎng)頁爬蟲不友好。原因是前端渲染的頁面需要在瀏覽器端執(zhí)行JavaScript代碼(AJAX請求)來獲取后端數(shù)據(jù),然后才能組裝成完整的HTML頁面。
 
 
 
目前針對這種情況的解決方案有很多,最常用的是PhantomJS、puppeteer等無頭瀏覽器工具,相當(dāng)于在網(wǎng)絡(luò)爬蟲中構(gòu)建一個瀏覽器內(nèi)核,先對抓取的頁面進(jìn)行渲染(執(zhí)行Javascript腳本),然后對頁面內(nèi)容進(jìn)行抓取。
 
 
 
但是,要使用這種技術(shù),通常都需要使用Javascript開發(fā)網(wǎng)絡(luò)爬蟲工具,這對于像我這樣習(xí)慣于編寫Python的人來說,確實(shí)很痛苦。
 
 
 
直到有一天,god kennethreitz發(fā)布了開源項(xiàng)目requests-html,在項(xiàng)目介紹中看到了FullJavaScriptsupport這句話!眼淚奪眶而出,就是這樣!該項(xiàng)目在GitHub上發(fā)布不到三天,明星數(shù)量就達(dá)到了5000多位,可見其影響力。
 
 
 
requests-html為什么這么受歡迎?
 
 
 
幾乎所有寫過Python的人都會使用這樣的HTTP庫作為請求。毫不夸張地說,它是最好的HTTP庫(不限于編程語言),它的引入也是當(dāng)之無愧的,HTTPRequestsforHumans。因此,蝗蟲和HttpRunner都是基于請求開發(fā)的。
 
 
 
而requests-HTML是kennethreitz基于請求開發(fā)的另一個開源項(xiàng)目。除了重用請求的所有功能外,它還實(shí)現(xiàn)了html頁面的解析,即支持Javascript的執(zhí)行,并使用CSS和XPath提取HTML頁面元素,這些都是編寫網(wǎng)絡(luò)爬蟲工具非常必要的功能。
 
 
 
在Javascript執(zhí)行方面,requests-html沒有構(gòu)建自己的輪子,而是依賴pyppeteer作為開源項(xiàng)目。還記得前面提到的木偶師項(xiàng)目,是GoogleChrome對NodeAPI的官方實(shí)現(xiàn);pyppeteer項(xiàng)目相當(dāng)于使用Python語言對木偶師的非官方實(shí)現(xiàn),幾乎具備了木偶師的所有功能。理清了以上關(guān)系,相信大家對requests-html會有更好的理解。
 
 
 
在用法上,requests-html也很簡單,它的用法和requests幾乎一樣,只是它有更多的呈現(xiàn)功能。
 
動態(tài)IP模擬器
 
 
 
執(zhí)行render()后,返回的是呈現(xiàn)的頁面內(nèi)容。
 
册亨县| 滨州市| 郓城县| 望都县| 砀山县| 花莲市| 定陶县| 改则县| 临颍县| 涟水县| 新绛县| 遂平县| 灌阳县| 康平县| 乌兰浩特市| 双城市| 靖宇县| 农安县| 金沙县| 疏附县| 道孚县| 沙河市| 偏关县| 凤城市| 廊坊市| 河西区| 北流市| 肃宁县| 观塘区| 临江市| 遵化市| 佛教| 施甸县| 嘉鱼县| 聂拉木县| 介休市| 两当县| 阜城县| 逊克县| 沙河市| 台东市|