如今的頁面大部分都是經過Js渲染來顯示頁面的,也就是若是不滾動到頁面底部就沒法獲取整個頁面的HTML源碼,若是經過CURL等抓取網頁那麼基本上抓取到都是一堆javascript代碼。javascript
因此就有了webkit爬蟲,把整個頁面渲染完了再抓取。這個到達頁面底部的操做一般是在webkit中執行Js來完成的,注意若是經過js直接跳到底部頁面只會渲染底部的HTML,中間的部分是不會渲染的。 因此下面這段代碼就是經過js逐步滾動到頁面底端,而且能判斷出頁面已達到底端來把setIntervel綁定的定時器清掉,以避免形成死循環。java
var delay = 10;//in milliseconds var scroll_amount = 10;// in pixels var interval; function scroller() { var old = document.body.scrollTop;//保存當前滾動條到頂端的距離 document.body.scrollTop += scroll_amount;//讓滾動條繼續往下滾動 if (document.body.scrollTop == old) {//到底部後就沒法再增長scrollTop的值 clearInterval(interval); } } function scrollToBottom() { interval = setInterval("scroller()",delay); } scrollToBottom()
用Python
的ghost.py
庫來作webkit爬蟲時就能夠用它的evaluate
方法執行這段代碼來渲染出整個頁面。web