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

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

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

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

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

时间: 2024-07-31 14:26:16

Python爬虫模拟登录京东获取个人信息的相关文章

Python爬虫模拟登录带验证码网站

问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白cookie的作用,cookie是某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据.因此我们需要用Cookielib模块来保持网站的cookie. 3.这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.15

Python爬虫实战---抓取图书馆借阅信息

原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约,影响日后借书,而自己又懒得总是登录到学校图书馆借阅系统查看,于是就打算写一个爬虫来抓取自己的借阅信息,把每本书的应还日期给爬下来,并写入txt文件,这样每次忘了就可以打开该txt文件查看,每次借阅信息改变了,只要再重新运行一遍该程序,原txt文件就会被新文件覆盖,里面的内容得到更新. 用到的技术: Python版本是 2.7 ,同时用到了ur

PHP通过CURL模拟登录并获取数据

<?php/*通过CURL模拟登录并获取数据 一些网站需要权限认证,必须登录网站后,才能有效地抓取网页并采集内容, 这就需要curl来设置cookie完成模拟登录网页,php的curl在抓取网页内容方 面效率是比较高的,而且支持多线程,而file_get_contents()效率就要稍低 些.模拟登录的代码如下所示:*/ function login_post($url, $cookie, $post){ $ch = curl_init(); //初始化curl模块 curl_setopt($c

【好文要转】Python:模拟登录以获取新浪微博OAuth的code参数值

[转自]http://www.tuicool.com/articles/zAz6zi [原文]http://blog.segmentfault.com/hongfei/1190000000343851 在使用新浪微博提供的API时,首先需要通过认证和授权,关于这部分,大家可以参考下 这篇文章 在完成以上步骤后,大家会发现每次要使用微博API之前,都需要我们手动输入code参数的值才行. 其中,code参数的值是在浏览器的地址栏中,也就是说,只要我们能使用代码正确地模拟浏览器发包,那么也就能得到c

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动

微信授权登录并获取用户信息接口开发

总结一下微信授权登录并获取用户信息 这个接口的开发流程. 一.首先你的微信公众号要获得相应的AppID和AppSecret,申请微信登录且通过审核后,才可开始接入流程. 二.授权流程 1.流程说明 (1). 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: (2). 通过code参数加上AppID和AppSecret等,通过API换取access_token: (3). 通过access_token进行接口调用,获取

PHP版微信第三方实现一键登录及获取用户信息的方法

本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要"服务号"才可以哦,所以必须到官方申请. 一开始你需要进入微信公众平台开启开发模式,并且填写oauth2的回调地址,地址填写你项目的域名就可以了.比如:www.baidu.com或zhidao.baidu.com.如果你的项目在二级域名就写二级域名 前端url授权地址,在url中填写appid与你项目中方法中的oauth的地址,具体在下面的代码中可以

Python爬虫之模拟登录豆瓣获取最近看过的电影

哈哈哈,模拟登录成功啦啦啦啦啦~~~~~ 重要的事本来要说三遍,不过还是算了== 先上效果图: 众所周知,很多网站都设置了登录之后才能获取查看页面的权利,因此模拟登录成了爬取信息的第一步,这一步成功了,嘿嘿,just do it! 好,废话不多说,直接说重点: 首先,你应该要了解网站登录的流程以及你需要post的信息,以豆瓣为例: source:movie redir:https://movie.douban.com/mine?status=collect form_email:username

python爬虫22 | 以后我再讲python「模拟登录」我就是狗

接下来就是 学习python的正确姿势 做爬虫 绕不开模拟登录 为此小帅b给大家支了几招 python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定! 有些网站的登录很弱鸡 传个用户名和密码 来个 POST 请求就搞定了 但还是少数 大多网站还是需要验证码的 登录需要验证码 频繁请求需要验证码 为此小帅b教你如何自动识别 python爬虫20 | 小帅b教你如何识别图片验证码 python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别 当然了 市面上还有许多打码验证平