selenium獲取網(wǎng)頁(yè)源碼亂碼(selenium獲取頁(yè)面元素及個(gè)數(shù))
這個(gè)應(yīng)該和selenium沒(méi)多少關(guān)系,而是應(yīng)該查看一下上傳html本身的編碼可以用記事本打開(kāi)另存為對(duì)話框看是什么編碼,一般改成utf8。
1首先,打開(kāi)散標(biāo)數(shù)據(jù),如下,爬取的信息主要包括年利率借款標(biāo)題期限金額和進(jìn)度這5個(gè)字段信息右鍵對(duì)應(yīng)元素進(jìn)行檢查,可以看出所有的數(shù)據(jù)嵌套在div標(biāo)簽中,如下打開(kāi)網(wǎng)頁(yè)源碼,我們按Ctrl+F查找對(duì)應(yīng)的數(shù)據(jù),會(huì)發(fā)現(xiàn)所查。
因?yàn)殇浿频淖址荊BK的,你變成utf8后就相當(dāng)于亂碼了,自己再把那些中文刪掉,重新打一遍就OK了。
當(dāng)使用爬蟲(chóng)抓取網(wǎng)頁(yè)時(shí),一般只能獲取到網(wǎng)頁(yè)源代碼,而無(wú)法獲取到經(jīng)過(guò)瀏覽器渲染后的頁(yè)面內(nèi)容如果要獲取經(jīng)過(guò)瀏覽器渲染后的內(nèi)容,需要使用一個(gè)瀏覽器渲染引擎如Selenium來(lái)模擬瀏覽器行為,從而獲取到完整的頁(yè)面內(nèi)容另外。
selenium通過(guò)獲取渲染后的網(wǎng)頁(yè)源碼,并通過(guò)豐富的查找工具,個(gè)人認(rèn)為最好用的就是find_element_by_xpathquotxxxquot,通過(guò)該方式查找到元素后可執(zhí)行點(diǎn)擊輸入等事件,進(jìn)而向服務(wù)器發(fā)出請(qǐng)求,獲取所需的數(shù)據(jù)python view plain。
查閱了很多資料,都是說(shuō)Chromedriver 源碼中某個(gè)變量名是表示該驅(qū)動(dòng)特征的,只需要改變這個(gè)變量名,或者攔截包含該變量名的請(qǐng)求就行了,攔截需要中間件太繁瑣,還是改源碼簡(jiǎn)單點(diǎn),于是找到了,別人改好,編譯好的Chromedriver。
二種方法1抓包,找到真正的url,模擬post或get 2用selenium+phantomjs 或firefox 或chrome。
選擇用selenium,但是沒(méi)找到selenium的webdriver下取得所有資源加載鏈接的方法selenium包下有一個(gè)selenium模塊查看源碼時(shí)看到有個(gè)get_all_links方法但是一直沒(méi)找到這個(gè)模塊的用法最后,求解答謝謝大家方法不成的話,就。
這個(gè)讀不了網(wǎng)頁(yè)元素,是因?yàn)槟愕木W(wǎng)頁(yè)都沒(méi)有打開(kāi)它怎么去讀取元素建議用chrome來(lái)做這些頁(yè)面操作,會(huì)比較好用,沒(méi)有這么多問(wèn)題,IE和Firefox對(duì)這個(gè)webdriver支持不太好,會(huì)有很多問(wèn)題。
整個(gè)網(wǎng)頁(yè)代碼啥樣的代碼中只出現(xiàn)兩個(gè)div那就用css選擇器,看下面。
driverpage_source是只能獲取源碼的如果是需要加載的,你需要用匹配,比如browserfind_elements_by_xpath。
報(bào)錯(cuò)的exception叫做NoSuchElementException,意思就是沒(méi)有這個(gè)element元素 那很有可能就是你要打開(kāi)的這個(gè)頁(yè)面還沒(méi)加載完成,所以你要去點(diǎn)擊這個(gè)element就會(huì)報(bào)這種錯(cuò)誤 你可以在這個(gè)click操作之前加判斷,判斷網(wǎng)頁(yè)是否加載完成。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。