2016-07-24 30 views
0

我想用urllib python庫解析網站。我寫了這個:我無法獲得網頁中的html頁面的正文元素python

from bs4 import BeautifulSoup 
from urllib.request import HTTPCookieProcessor, build_opener 
from http.cookiejar import FileCookieJar 


def makeSoup(url): 
    jar = FileCookieJar("cookies") 
    opener = build_opener(HTTPCookieProcessor(jar)) 
    html = opener.open(url).read() 
    return BeautifulSoup(html, "lxml") 


def articlePage(url): 
    return makeSoup(url) 


Links = "http://collegeprozheh.ir/%d9%85%d9%82%d8%a7%d9%84%d9%87- %d9%85%d8%af%d9%84-%d8%b1%d9%82%d8%a7%d8%a8%d8%aa%db%8c-%d8%af%d8%b1-%d8%b5%d9%86%d8%b9%d8%aa-%d9%be%d9%86%d9%84-%d9%87%d8%a7%db%8c-%d8%ae%d9%88%d8%b1%d8%b4%db%8c%d8%af/" 
print(articlePage(Links)) 

但是網站沒有返回body標籤的內容。 這是我的程序的結果是:

cURL = window.location.href; 
var p = new Date(); 
second = p.getTime(); 
GetVars = getUrlVars(); 

setCookie("Human" , "15421469358743" , 10); 
check_coockie = getCookie("Human"); 

if (check_coockie != "15421469358743") 
     document.write("Could not Set cookie!"); 
else 
     window.location.reload(true); 


</script> 
</head><body></body> 
</html> 

我認爲該cookie引起了這個問題。

回答

0

頁面正在使用JavaScript來檢查cookie並生成內容。但是,urllib不處理JavaScript,因此該頁面不顯示任何內容。

您需要使用類似Selenium這樣的瀏覽器並執行JavaScript,或者您需要在請求頁面之前自行設置cookie(從我所看到的,這就是所有的JavaScript代碼一樣)。您似乎正在加載包含Cookie定義的文件(使用FileCookieJar),但是您尚未包含該內容。