python urllib,urllib2如何获得SHARP链接

时间:2016-05-21 09:59:36

标签: python urllib2 mechanize urllib cookielib

亲爱的帮助,这是问题,我无法得到 ' http://example.com/#sharplink',顺便在网站中制作无限循环,所以我使用了重定向处理程序,它需要启用cookielibrary,

这是我的代码

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'页面不是很尖锐的页面,请帮帮我!!!

1 个答案:

答案 0 :(得分:1)

网址的片段部分(" sharplink")不会发送到网络服务器(它通常用于定义链接所指的给定网页上的特定部分),所以您是否请求http://example.com/goto/http://example.com/goto/#sharplink

并不重要

如果您希望页面不同,那么该站点很可能使用AJAX框架来编码URL的片段部分中的状态。由于urllib和朋友不执行JS,您需要使用phantomjs之类的内容来获取页面内容。