2016-07-24 11 views
0

Ich möchte eine Website mit Urlib Python-Bibliothek analysieren. Ich schrieb dies:Ich kann nicht das Body-Element der HTML-Seite in Web-Verschrottung von 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)) 

aber die Website nicht zurück Inhalt der Body-Tag. dies ist das Ergebnis meines Programms:

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> 

Ich denke, das Cookie dieses Problem verursacht hat.

Antwort

0

Die Seite verwendet JavaScript, um den Cookie zu überprüfen und den Inhalt zu generieren. urllib verarbeitet jedoch kein JavaScript und daher zeigt die Seite nichts.

Sie müssen entweder etwas wie Selenium verwenden, das als Browser fungiert und JavaScript ausführt, oder Sie müssen den Cookie selbst setzen, bevor Sie die Seite anfordern (von dem, was ich sehe, das ist der ganze JavaScript-Code) tut). Sie scheinen eine Datei zu laden, die Cookie-Definitionen enthält (unter Verwendung von FileCookieJar), jedoch haben Sie den Inhalt nicht eingefügt.

Verwandte Themen