python京东注册账号_Python爬虫模拟登录京东获取个人信息
先上我的代碼。參考了上面鏈接的文章#?-*-?coding:?utf-8?-*-
#?!/usr/bin/python
import?os
import?urllib2
import?urllib
import?cookielib
import?re
import?sys
from?bs4?import?BeautifulSoup
‘‘‘
編碼方式的設置,在中文使用時用到中文時的處理方式
‘‘‘
default_encoding?=?"utf-8"
if?sys.getdefaultencoding()?!=?default_encoding:
reload(sys)
sys.setdefaultencoding("utf-8")
def?getHtml(url,data={}):
if(data=={}):
req=urllib2.Request(url)
else:
req=urllib2.Request(url,urllib.urlencode(data))
html=urllib2.urlopen(req).read()
return?html
try:
cookie?=?cookielib.CookieJar()
cookieProc?=?urllib2.HTTPCookieProcessor(cookie)
except:
raise
else:
opener?=?urllib2.build_opener(cookieProc)
opener.addheaders?=?[(‘User-Agent‘,‘Mozilla/5.0?(Windows?NT?6.1)?AppleWebKit/537.11?(KHTML,?like?Gecko)?Chrome/23.0.1271.64?Safari/537.11‘)]
urllib2.install_opener(opener)
auth_url=‘https://passport.jd.com/uc/loginService‘
#auth_url?=?‘http://www.nowamagic.net/‘
home_url=‘http://usergrade.jd.com/user/consume‘
#home_url?=?‘http://www.nowamagic.net/librarys/nmra/‘;
url?=?"https://passport.jd.com/uc/login"
login=getHtml(url)
#print?login
loginSoup?=?BeautifulSoup(login,‘html.parser‘)
#查找登陸參數中的uuid
uuid?=?loginSoup.find_all("form")[0].find_all("input")[0][‘value‘]
print?uuid
clrName=loginSoup.find_all("form")[0].find_all("input")[6][‘name‘]
clrValue=loginSoup.find_all("form")[0].find_all("input")[6][‘value‘]
‘‘‘這倆參數不是必須。。。。
eid=loginSoup.find_all("form")[0].find_all("input")[4][‘value‘]
fp=loginSoup.find_all("form")[0].find_all("input")[5][‘value‘]
‘‘‘
#下載驗證碼圖片:
checkPicUrl?=?loginSoup.find_all("div",id="o-authcode")[0].find_all("img")[0][‘src2‘]
req?=?getHtml(checkPicUrl)
checkPic?=?open("checkPic.jpg","w")
checkPic.write(req)
checkPic.close()
#調用mac系統的預覽(圖像查看器)來打開圖片文件
os.system(‘open?/Applications/Preview.app/?checkPic.jpg‘)
checkCode?=?raw_input("請輸入彈出圖片中的驗證碼:")
#登錄URL
url?=?"http://passport.jd.com/uc/loginService"
#?登陸用戶名和密碼
postData?=?{
‘loginname‘:‘你自己的賬號‘,
‘nloginpwd‘:‘你自己的密碼‘,
‘loginpwd‘:‘你自己的密碼‘,
#?‘machineNet‘:‘‘,
#?‘machineCpu‘:‘‘,
#?‘machineDisk‘:‘‘,
str(clrName):str(clrValue),
‘uuid‘:uuid,
‘authcode‘:?checkCode
}
passport=getHtml(url,postData)
print?passport
#?初始化一個CookieJar來處理Cookie
‘‘‘
cookieJar=cookielib.CookieJar()
#?實例化一個全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
#?獲取cookie
req=urllib2.Request(auth_url,post_data,headers)
result?=?opener.open(req)
#?訪問主頁?自動帶著cookie信息
‘‘‘
result?=?opener.open(‘http://i.jd.com/user/info‘)
#?顯示結果
#print?result.read()
soup=BeautifulSoup(result,‘html.parser‘)
#昵稱
nickName?=?soup.find_all("input",?id="nickName")[0]["value"]
print?"nickName:",
print?nickName
其實在第一次爬的時候確實是成功返回了{“success”:“http://www.jd.com”}。
但是當我回到寢室再次測試的時候卻給我返回了“請刷新頁面后重新提交”,暫時還沒有解決。
總結
以上是生活随笔為你收集整理的python京东注册账号_Python爬虫模拟登录京东获取个人信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超越iPhone 14!卢伟冰:小米13
- 下一篇: python开发工具与pycharm_p