")xsrf=r.findall(urllib.urlopen("htt..." />

如何利用python登錄知乎頁面?

# encoding:utf-8
import urllib
import urllib2
import re
import cookielib

r=re.compile("name="_xsrf" value="(.+?)"/&>")
xsrf=r.findall(urllib.urlopen("http://www.zhihu.com").read())[0]
print xsrf
values={
"_xsrf":xsrf,
"email":"不能給你們看了",
"passwd":"不能給你們看了",
"rememberme":"y"
}
data=urllib.urlencode(values)
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36"
}
request=urllib2.Request("http://www.zhihu.com/login",data,headers)
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
for item in cj:
print item.name+":"+item.value
print opener.open(request).read()

無語法錯誤,能抓取的xsrf的值,但是登錄不上去,最後一個print的結果是未登錄狀態的知乎首頁內容,求知乎的大神們解答呀!!!


import requests
from bs4 import BeautifulSoup

s = requests.Session()
r = s.post("http://www.zhihu.com/login",
data={"_xsrf": BeautifulSoup(s.get("http://www.zhihu.com/").content).find(type="hidden")["value"],
"email": "email", "password": "password", "rememberme": "y"})
print(r.text)

請善用第三方庫。


參考下我之前寫的:https://github.com/flyer103/zhihu


現在登錄的時候都會有驗證碼驗證,樓上幾個程序應該運行不成功吧?


推薦閱讀:

去哪可以找到幫忙開發爬蟲的呢?
python 爬蟲 ip池怎麼做?

TAG:程序員 | 爬蟲計算機網路 | Python入門 | Python開發 |