Python爬虫模拟登录京东获取个人信息,,原文http://w


原文http://www.xgezhang.com/python_crawler_jingdong.html

先上我的代码。参考了上面链接的文章

#-*-coding:utf-8-*-#!/usr/bin/pythonimportosimporturllib2importurllibimportcookielibimportreimportsysfrombs4importBeautifulSoup‘‘‘编码方式的设置,在中文使用时用到中文时的处理方式‘‘‘default_encoding="utf-8"ifsys.getdefaultencoding()!=default_encoding:reload(sys)sys.setdefaultencoding("utf-8")defgetHtml(url,data={}):if(data=={}):req=urllib2.Request(url)else:req=urllib2.Request(url,urllib.urlencode(data))html=urllib2.urlopen(req).read()returnhtmltry:cookie=cookielib.CookieJar()cookieProc=urllib2.HTTPCookieProcessor(cookie)except:raiseelse:opener=urllib2.build_opener(cookieProc)opener.addheaders=[(‘User-Agent‘,‘Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.11(KHTML,likeGecko)Chrome/23.0.1271.64Safari/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)#printloginloginSoup=BeautifulSoup(login,‘html.parser‘)#查找登陆参数中的uuiduuid=loginSoup.find_all("form")[0].find_all("input")[0][‘value‘]printuuidclrName=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("请输入弹出图片中的验证码:")#登录URLurl="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)printpassport#初始化一个CookieJar来处理Cookie‘‘‘cookieJar=cookielib.CookieJar()#实例化一个全局openeropener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))#获取cookiereq=urllib2.Request(auth_url,post_data,headers)result=opener.open(req)#访问主页自动带着cookie信息‘‘‘result=opener.open(‘http://i.jd.com/user/info‘)#显示结果#printresult.read()soup=BeautifulSoup(result,‘html.parser‘)#昵称nickName=soup.find_all("input",id="nickName")[0]["value"]print"nickName:",printnickName

其实在第一次爬的时候确实是成功返回了{“success”:“http://www.jd.com”}。

但是当我回到寝室再次测试的时候却给我返回了“请刷新页面后重新提交”,暂时还没有解决。

Python爬虫模拟登录京东获取个人信息

评论关闭