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

简介:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# -*- 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”}。

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


本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1748590


相关文章
|
1天前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
102 66
|
1天前
|
数据采集 存储 JavaScript
构建你的第一个Python网络爬虫
【9月更文挑战第34天】在数字信息泛滥的时代,快速有效地获取和处理数据成为一项重要技能。本文将引导读者通过Python编写一个简易的网络爬虫,实现自动化地从网页上抓取数据。我们将一步步走过代码的编写过程,并探讨如何避免常见陷阱。无论你是编程新手还是想扩展你的技术工具箱,这篇文章都将为你提供有价值的指导。
30 18
|
5天前
|
数据采集 存储 XML
构建高效的Python爬虫系统
【9月更文挑战第30天】在数据驱动的时代,掌握如何快速高效地获取网络信息变得至关重要。本文将引导读者了解如何构建一个高效的Python爬虫系统,从基础概念出发,逐步深入到高级技巧和最佳实践。我们将探索如何使用Python的强大库如BeautifulSoup和Scrapy,以及如何应对反爬措施和提升爬取效率的策略。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在信息收集的海洋中航行得更远、更深。
19 6
|
4天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
15 3
|
7天前
|
数据采集 JSON 数据格式
Python:南京地铁每日客流数据的爬虫实现
Python:南京地铁每日客流数据的爬虫实现
20 1
|
5天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
18 0
|
5天前
|
数据采集 Linux 网络安全
python 爬虫遇到的aiohttp证书错误解决办法
python 爬虫遇到的aiohttp证书错误解决办法
20 0
|
2月前
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。
150 6
|
2月前
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
5月前
|
数据采集 存储 中间件
Python高效爬虫——scrapy介绍与使用
Scrapy是一个快速且高效的网页抓取框架,用于抓取网站并从中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。 相比于自己通过requests等模块开发爬虫,scrapy能极大的提高开发效率,包括且不限于以下原因: 1. 它是一个异步框架,并且能通过配置调节并发量,还可以针对域名或ip进行精准控制 2. 内置了xpath等提取器,方便提取结构化数据 3. 有爬虫中间件和下载中间件,可以轻松地添加、修改或删除请求和响应的处理逻辑,从而增强了框架的可扩展性 4. 通过管道方式存储数据,更加方便快捷的开发各种数据储存方式
下一篇
无影云桌面