2013-05-01 73 views
1

我目前正在编写一个脚本,它涉及(希望)屏幕从我的工作场所的网页中抓取大量数据。它是一个ASP.NET页面,在Chrome或Internet Explorer上查看时不需要登录。UrlLib2 - 在请求工作场所网络上的ASP.NET网站时拒绝访问

我曾尝试以“会议顶”我的Internet Explorer会话得到它通过在Python的urllib2读,但是我还是拒绝访问(增加的Internet Explorer是使用ASP.NET_Sessionid后...)

我承认对互联网的知识知之甚少,所以我可能在这里做错了什么,但我需要从Python访问这个网页。如果效果更好,我愿意使用另一个库。

回答

1

也许网页正在检查有效的请求标头?

你真的应该使用pycurl来处理这类工作。

#!/usr/bin/env python 
import pycurl 
import cStringIO 
buf = cStringIO.StringIO() 

pycurl_headers = ['Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
        'Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3', 
        'Accept-Language:en-US,en;q=0.8,bg;q=0.6', 
        'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 \ 
        (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31'] 


c = pycurl.Curl() 
c.setopt(c.URL, 'http://google.com') 
c.setopt(c.WRITEFUNCTION, buf.write) 
c.setopt(c.AUTOREFERER, 1) 
c.setopt(c.FOLLOWLOCATION , True) 
c.setopt(c.CONNECTTIMEOUT, 5) 
c.setopt(c.TIMEOUT, 5) 
c.setopt(c.HTTPHEADER, pycurl_headers) 
c.perform() 

print buf.getvalue() 
buf.close() 
+0

已经尝试过,...复制了我的谷歌浏览器会话的确切头数据(而这是请求我试图解析网页),并在我的urllib2请求使用它我...我甚至在头文件中发送会话cookie ......我不知道我可能会泄漏哪些数据,这是告诉服务器我不是浏览器? – user2339421 2013-05-01 14:44:19

+0

请尝试我的代码,然后重新写入。我的代码发送引用并捕获重定向。 – nacholibre 2013-05-01 14:53:16

相关问题