我想用urllib 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>
我认为cookie导致了这个问题。
答案 0 :(得分:0)
该页面使用JavaScript来检查cookie并生成内容。但是,urllib
不会处理JavaScript,因此页面不会显示任何内容。
你需要使用Selenium之类的东西作为浏览器并执行JavaScript,或者你需要在请求页面之前自己设置cookie(从我所看到的,这就是全部JavaScript代码确实如此)。您似乎正在加载包含Cookie定义的文件(使用FileCookieJar
),但是您没有包含内容。