我的代码不适用于nytimes中的文章。请尝试将网址变量更改为其他内容,您会发现它有效。那是为什么?
#url = "http://www.nytimes.com";
url = "http://www.nytimes.com/interactive/2014/07/07/upshot/how-england-italy-and-germany-are-dominating-the-world-cup.html"
htmlfile = urllib.urlopen(url);
htmltext = htmlfile.read();
print htmltext;
请指教。 感谢。
答案 0 :(得分:2)
我认为NYT会使用Cookie验证您的请求。如果请求不是Web浏览器的普通请求,则服务器返回Location头。这会让你的请求丢失。
解决方案很简单。像这样使用cookiejar:
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
url = "http://www.nytimes.com/interactive/2014/07/07/upshot/how-england-italy-and-germany-are-dominating-the-world-cup.html"
htmlfile = opener.open(url)
htmltext = htmlfile.read();
print htmltext
答案 1 :(得分:0)
由于"没有工作"我认为你的意思是它并没有给你预期的内容。当我使用urllib
访问该网址时,我得到一个空的结果,所以这可能是NYT"付费墙的另一个方面。"