这是我的代码
import urllib2, urllib, cookielib
urllib.FancyURLopener.version = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.3) Gecko/2008092814 (Debian-3.0.1-1)'
class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
def redirect_request(self, req, fb, code, msg, headers, newurl):
m = req.get_method()
if (code in (301, 302, 303, 307) and m in ('GET', 'HEAD') or code in (301, 302, 303) and m == 'POST'):
newurl = newurl.replace(' ', '%20')
newheaders = dict((k,v) for k,v in req.headers.items()
if k.lower() not in ("content-length", "content-type")
)
return urllib2.Request(newurl,
headers=newheaders,
origin_req_host=req.get_origin_req_host(),
unverifiable=True)
else:
raise HTTPError(req.get_full_url(), code, msg, headers, fp)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(MyHTTPRedirectHandler, urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
req = urllib2.Request('http://example.com/goto/#sharplink')
response = urllib2.urlopen(req)
f=open('bet','w')
f.write(response.read())
f.close()
但每次我都能得到' http://example.com/goto'页面不是很尖锐的页面,请帮帮我!!!
答案 0 :(得分:1)
网址的片段部分(" sharplink")不会发送到网络服务器(它通常用于定义链接所指的给定网页上的特定部分),所以您是否请求http://example.com/goto/
或http://example.com/goto/#sharplink
如果您希望页面不同,那么该站点很可能使用AJAX框架来编码URL的片段部分中的状态。由于urllib
和朋友不执行JS,您需要使用phantomjs
之类的内容来获取页面内容。