九九热精品免费观看-九九热国产视频-九九免费精品视频-九九免费高清在线观看视频-午夜精品国产自在现线拍-午夜家庭影院

動(dòng)態(tài)網(wǎng)頁(yè)抓取

動(dòng)態(tài)網(wǎng)頁(yè)抓取

動(dòng)態(tài)網(wǎng)頁(yè)抓取,怎么爬取動(dòng)態(tài)網(wǎng)頁(yè)?本文分為2個(gè)階段第一個(gè)階段是不懂代碼編程的小白怎么使用動(dòng)態(tài)網(wǎng)頁(yè)抓取,第二個(gè)階段是編程人員怎么實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)抓取,我們先進(jìn)入第一個(gè)階段,小白怎么使用動(dòng)態(tài)網(wǎng)頁(yè)抓取。如圖所示這款免費(fèi)的動(dòng)態(tài)網(wǎng)頁(yè)抓取工具,只需要輸入域名、選擇你所需要抓取的數(shù)據(jù)。全程可視化操作,無需懂代碼懂技術(shù)也能實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)抓取,支持各種格式導(dǎo)出,也支持自動(dòng)發(fā)布到網(wǎng)站。


第二階段編程人員怎么實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)抓取:

Ajax(Asynchronous JavaScript nad XML),動(dòng)態(tài)網(wǎng)頁(yè)抓取即異步的JavaScript和XML。它不是一門編程語(yǔ)言,而是利用JavaScript在保證網(wǎng)頁(yè)不被刷新、頁(yè)面不改變的情況下與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的技術(shù)。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。一方面減少了網(wǎng)頁(yè)重復(fù)內(nèi)容的下載,另一方面節(jié)省了流量,因此AJAX得到了廣泛的使用。


例如:打開tx視頻,在電影中,鼠標(biāo)的滑輪向下劃,動(dòng)態(tài)網(wǎng)頁(yè)抓取你會(huì)發(fā)現(xiàn)電影好像沒有盡頭,有時(shí)候最下面會(huì)出現(xiàn)加載的動(dòng)畫。頁(yè)面其實(shí)并沒有整個(gè)刷新,鏈接也并沒有變化,但是網(wǎng)頁(yè)中新增加了電影,這就是通過Ajax獲取新數(shù)據(jù)并呈現(xiàn)的過程。

Ajax有其特殊的請(qǐng)求類型,它是xhr,可以在Chrome的檢查中選擇xhr查看。


步驟01 打開“檢查”功能。動(dòng)態(tài)網(wǎng)頁(yè)抓取用Chrome瀏覽器打開Hello World文章。右擊頁(yè)面的任意位置,在彈出的快彈菜單中單擊“檢查”命令。步驟02 找到真實(shí)的數(shù)據(jù)地址。單擊頁(yè)面中的Network選項(xiàng),動(dòng)態(tài)網(wǎng)頁(yè)抓取然后刷新網(wǎng)頁(yè)。此時(shí),Network會(huì)顯示瀏覽器從網(wǎng)頁(yè)服務(wù)器中得到的所有文件,一般這個(gè)過程成為“抓包”。


從文件中快速找到評(píng)論數(shù)據(jù)所在文件的方法:動(dòng)態(tài)網(wǎng)頁(yè)抓取search評(píng)論內(nèi)容可以快速定位具體的評(píng)論所在位置的文件。步驟03 爬取真實(shí)評(píng)論數(shù)據(jù)地址。既然找到了真實(shí)的地址,動(dòng)態(tài)網(wǎng)頁(yè)抓取接下來就可以直接用requests請(qǐng)求這個(gè)地址獲取數(shù)據(jù)了。


步驟04 從json數(shù)據(jù)中提取評(píng)論。可以使用json庫(kù)解析數(shù)據(jù),動(dòng)態(tài)網(wǎng)頁(yè)抓取從中提取想要的數(shù)據(jù)。接下來可以用for循環(huán)爬取多頁(yè)評(píng)論數(shù)據(jù),可以通過對(duì)比不同頁(yè)面真實(shí)地址,動(dòng)態(tài)網(wǎng)頁(yè)抓取發(fā)現(xiàn)其參數(shù)的不同之處,通過改變折現(xiàn)參數(shù)值實(shí)現(xiàn)換頁(yè)。


有些網(wǎng)站非常復(fù)雜,使用“檢查”功能很難找到調(diào)用的網(wǎng)頁(yè)地址。除此之外,有些數(shù)據(jù)的真實(shí)地址的URL也十分復(fù)雜,有些網(wǎng)站為了規(guī)避這些抓取會(huì)對(duì)地址進(jìn)行加密,造成其中的一些變量讓人摸不著頭腦,因此,這里介紹另一種方法,動(dòng)態(tài)網(wǎng)頁(yè)抓取即使用瀏覽器渲染引擎。直接使用瀏覽器在顯示網(wǎng)頁(yè)時(shí)解析HTML、應(yīng)用CSS樣式并執(zhí)行JavaScript的語(yǔ)句。通俗來講就是使用瀏覽器渲染方法將爬取動(dòng)態(tài)頁(yè)面變成爬取靜態(tài)頁(yè)面。

步驟01 找到評(píng)論的HTML代碼標(biāo)簽。使用Chrome打開文章頁(yè)面,動(dòng)態(tài)網(wǎng)頁(yè)抓取右擊頁(yè)面,在彈出的快捷菜單中單擊“檢查”命令。


步驟02 嘗試獲取一條評(píng)論數(shù)據(jù)。動(dòng)態(tài)網(wǎng)頁(yè)抓取在原來打開頁(yè)面的代碼數(shù)據(jù)上使用以下代碼,獲取第一條評(píng)論數(shù)據(jù)。

如果要獲取所有評(píng)論,需要腳本程序能夠自動(dòng)點(diǎn)擊“+10查看更多”,這樣才能將所有評(píng)論顯示出來。因此,我們需要找到“+10查看更多” 動(dòng)態(tài)網(wǎng)頁(yè)抓取的元素地址,然后讓Selenium模擬單擊并加載評(píng)論。

在抓取過程中僅僅抓取頁(yè)面的內(nèi)容,CSS樣式文件是用來控制頁(yè)面的外觀和元素放置位置的,對(duì)內(nèi)容并沒有影響,所以我們可以通過限制網(wǎng)頁(yè)加載CSS,動(dòng)態(tài)網(wǎng)頁(yè)抓取從而較少抓取時(shí)間。


如果需要抓取的內(nèi)容不是通過JavaScript動(dòng)態(tài)加載得到的,我們可以通過禁止JavaScript的執(zhí)行來提高抓取的效率。因?yàn)榇蠖鄶?shù)網(wǎng)頁(yè)都會(huì)利用JavaScript異步加載很多的內(nèi)容,這些內(nèi)容不僅是我們不需要的,它們的加載還浪費(fèi)了時(shí)間。


轉(zhuǎn)載請(qǐng)說明出處內(nèi)容投訴
147SEO » 動(dòng)態(tài)網(wǎng)頁(yè)抓取

發(fā)表評(píng)論

歡迎 訪客 發(fā)表評(píng)論

一個(gè)令你著迷的主題!

查看演示 官網(wǎng)購(gòu)買
×

服務(wù)熱線

微信客服

微信客服