2016-07-24 11 views
0

urllibのpythonライブラリでウェブサイトを解析したいと思います。私はこれを書いた:私は、Webでhtmlページのbody要素を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)) 

しかし、このウェブサイトはボディタグの内容を返さない。 これは私のプログラムの結果です:

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> 

私はクッキーは、この問題を引き起こしていると思います。

答えて

0

このページでは、JavaScriptを使用してCookieを確認し、コンテンツを生成しています。ただし、urllibはJavaScriptを処理しないため、ページには何も表示されません。

Seleniumのようなものをブラウザとして動作させ、JavaScriptを実行するか、ページをリクエストする前にクッキーを設定する必要があります(私が見ることができるのは、すべてのJavaScriptコードですそうです)。クッキー定義を含むファイルをロードしているようですが(FileCookieJarを使用しています)、コンテンツは含まれていません。