1

一部のユーザーデータを取得するために、プログラムで OKCupid ( www.okcupid.com/login ) にログインしようとしています。これを行うためにPythonスクリプトをまとめようとしましたが、何か間違っているようです。

このサンプル スクリプトで希望する動作は、ログインし、ホームページへのリダイレクトに従って、HTML 応答を出力することです。これが私がこれまでに持っているものです:

import urllib, urllib2, cookielib

# cookie storage
cj = cookielib.CookieJar()
opener = urllib2.build_opener(
    urllib2.HTTPCookieProcessor(cj),
    urllib2.HTTPRedirectHandler
    )
# Useragent
opener.addheaders.append(('User-agent','Mozilla/4.0'))

url = 'http://www.okcupid.com/login'
login_data = urllib.urlencode({
    'username':'myusername',
    'password':'mypassword',
    })

req = urllib2.Request(url,login_data)
resp = urllib2.urlopen(req)
the_page = resp.read()

print the_page
4

3 に答える 3

1

あなたがしていることに基づいて、これは私がログインしてメッセージに移動し、すべてのユーザー名を保存するために私がしていることの例です

import urllib, urllib2, cookielib
import re
# cookie storage
cj = cookielib.CookieJar()
opener = urllib2.build_opener(
    urllib2.HTTPCookieProcessor(cj),
    urllib2.HTTPRedirectHandler
    )
# Useragent
opener.addheaders.append(('User-agent','Mozilla/4.0'))


url = 'http://www.okcupid.com/login'
login_data = urllib.urlencode({
    'username':'Mobius1',
    'password':'raptor22',
    })

urllib2.install_opener(opener)

res = opener.open(url, login_data)

print res.url #should be http://www.okcupid.com/home if successful
res.close()

#navigate profile after successful login
res = opener.open('http://www.okcupid.com/messages')
the_page = res.read() #read content at URL

#find all usernames from page content with pattern /profile/username?
UserNameList = re.findall(r'/profile/([\w\.-]+)?', the_page)
print UserNameList

with open('OkC_messages.html', 'w') as fid: #save the_page as html
    fid.write(the_page)
于 2013-11-09T16:01:19.290 に答える
0

エラーを把握しました。オープナーを作成しましたが、使用しませんでした。修正は次のとおりです。

import urllib, urllib2, cookielib

# cookie storage
cj = cookielib.CookieJar()
opener = urllib2.build_opener(
    urllib2.HTTPCookieProcessor(cj),
    urllib2.HTTPRedirectHandler
    )
# Useragent
opener.addheaders.append(('User-agent','Mozilla/4.0'))

url = 'http://www.okcupid.com/login'
login_data = urllib.urlencode({
    'username':'myusername',
    'password':'mypassword',
    })

req = urllib2.Request(url,login_data)
resp = opener.open(req)
the_page = resp.read()

print the_page
于 2012-07-22T00:20:46.807 に答える