0

http://plus.google.com/ * URLで urllib2.urlopen() または requests.get() を使用できるようにしたい。

Pythonを使用して、どうすればそれを行うことができますか? 最初にログインする必要がありますが、どうすればよいですか?

次のコードは、次の行に沿って何かを返します。

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

さて、Cookie 自体が作成され、robots.txt をテストしましたが、dialow はありません...ユーザー エージェントの切り替えも試みましたが、うまくいきませんでした。

    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