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”}。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值