0

我希望能够将 urllib2.urlopen() 或 requests.get() 与http://plus.google.com/ * url 一起使用。

使用python,我将如何去做呢?我需要先登录,但如何?

以下代码返回类似于以下内容的内容:

"Your browser's cookie functionality is turned off. Please turn it on."

好吧,cookie 本身已创建,并且我测试了 robots.txt,没有任何拨号...我也尝试过切换用户代理,但没有运气。

    cookie_filename =  "google.cookie"
    email = raw_input("Enter your Google username: ")
    password = getpass.getpass("Enter your password: ")

    self.cj = cookielib.MozillaCookieJar(cookie_filename)
    self.cj.load()

    self.opener = urllib2.build_opener(
        urllib2.HTTPRedirectHandler(),
        urllib2.HTTPHandler(debuglevel = 0),
        urllib2.HTTPSHandler(debuglevel = 0),
        urllib2.HTTPCookieProcessor(self.cj)
    )

    urllib2.install_opener(self.opener)

    login_page_url = 'https://www.google.com/accounts/ServiceLogin?passive=true&service=grandcentral'
    authenticate_url = 'https://www.google.com/accounts/ServiceLoginAuth?service=grandcentral'
    gv_home_page_url = 'https://www.google.com/voice/#inbox'

    # Load sign in page
    login_page_contents = self.opener.open(login_page_url).read()

    # Find GALX value
    galx_match_obj = re.search(r'name="GALX"\s*value="([^"]+)"', login_page_contents, re.IGNORECASE)       
    galx_value = galx_match_obj.group(1) if galx_match_obj.group(1) is not None else ''

    # Set up login credentials
    login_params = urllib.urlencode( {
       'Email' : email,
       'Passwd' : password,
       'continue' : 'https://www.google.com/voice/account/signin',
       'GALX': galx_value
    })

    # Login
    resp = self.opener.open(authenticate_url, login_params).readlines()
    print resp
    self.opener.open(authenticate_url, login_params).readlines()

    self.cj.save()
    # Open GV home page
    gv_home_page_contents = self.opener.open(gv_home_page_url).read()
    print gv_home_page_contents
4

0 回答 0