• 该作品可以和博主之前所写的爬虫作品进行比对学习
  • 模块使用还是一致的,这里是通过帕徐session id 和token进行登陆的
  • 验证码方式为手动输入
  • 其余的 这一篇就不讲了,有需要可以进博主的‘爬虫’专栏进行学习
# -*- coding:utf-8 -*-import time
import requests
from bs4 import BeautifulSoupclass JD_crawl:def __init__(self, username, password):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36'' (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36','Referer': 'https://www.jd.com/',}self.login_url = "https://passport.jd.com/new/login.aspx"self.post_url = "https://passport.jd.com/uc/loginService"self.auth_url = "https://passport.jd.com/uc/showAuthCode"self.session = requests.session()self.username = usernameself.password = passworddef get_login_info(self):html = self.session.get(self.login_url, headers=self.headers).contentsoup = BeautifulSoup(html, 'lxml')uuid = soup.select('#uuid')[0].get('value')eid = soup.select('#eid')[0].get('value')fp = soup.select('input[name="fp"]')[0].get('value')  # session id_t = soup.select('input[name="_t"]')[0].get('value')  # tokenlogin_type = soup.select('input[name="loginType"]')[0].get('value')pub_key = soup.select('input[name="pubKey"]')[0].get('value')sa_token = soup.select('input[name="sa_token"]')[0].get('value')auth_page = self.session.post(self.auth_url,data={'loginName': self.username, 'nloginpwd': self.password}).textif 'true' in auth_page:auth_code_url = soup.select('#JD_Verification1')[0].get('src2')auth_code = str(self.get_auth_img(auth_code_url))else:auth_code = ''data = {'uuid': uuid,'eid': eid,'fp': fp,'_t': _t,'loginType': login_type,'loginname': self.username,'nloginpwd': self.password,'chkRememberMe': True,'pubKey': pub_key,'sa_token': sa_token,'authcode': auth_code}return datadef get_auth_img(self, url):auth_code_url = 'http:{}&yys={}'.format(url, str(int(time.time()*1000)))auth_img = self.session.get(auth_code_url, headers=self.headers)with open('authcode.jpg', 'wb') as f:f.write(auth_img.content)code_typein = input('请根据下载图片输入验证码:')return code_typeindef login(self):data = self.get_login_info()headers = {'Referer': self.post_url,'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36'' (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36','X-Requested-With': 'XMLHttpRequest'}try:login_page = self.session.post(self.post_url, data=data, headers=headers)print(login_page.text)except Exception as e:print(e)# self.session.cookies.clear()def shopping(self):login = self.session.post('https://cart.jd.com/cart.action', headers=self.headers)print(login.text)if __name__ == '__main__':un = input('请输入京东账号:')pwd = input('请输入京东密码:')jd = JD_crawl(un, pwd)jd.login()jd.shopping()

python-requests 模拟登陆京东相关推荐

  1. Python + Requests 模拟登陆(含验证码)

    其实模拟登陆非常简单,只要在打开网站的同时提交数据就可以了. 下面通过登陆超星网来举例说明如何一步步实现模拟登陆. 1.获取需要提交的数据 使用chrome的Network或者fiddler可以很轻易 ...

  2. 【Python】模拟登陆房天下的总结

    [Python]requests模拟登陆房天下的总结 最近想爬取些与房价有关的数据,看了几个网站,感觉房天下包含的内容比较多,于是,先对房天下入手.为了保证后面数据爬取,想先模拟登陆获取cookies ...

  3. requests模拟登陆 + 验证码

    requests模拟登陆 + 验证码 文章目录 @[toc] 1.requests的高级应用 ~ 会话维持 2.打码平台 3.云打码平台接口使用 4.动态传参与模拟登陆 昨日回顾: 多线程爬虫: ​ ...

  4. Python:模拟登陆与HTTP协议(1)

    编程悬崖,回头是岸 --Python:模拟登陆与HTTP协议(1) 最近快船可谓风生水起,现在是14胜3负排西部第二,西决地板的魔咒有望破解.东部毫无疑问是骑士的了,就看西部的马刺勇士快船谁能笑到最后 ...

  5. java模拟京东登陆_requests+beautifulsoup模拟登陆京东

    最近需要实现获取个人京东订单信息的功能,利用了requests+beautifulsoup来实现. requests是python的第三方库,相比之前常用的python标准库中的urllib2,req ...

  6. python爬虫——模拟登陆

    参考链接:https://blog.csdn.net/weixin_39875941/article/details/109878457 模拟登陆 Python网络爬虫应用十分广泛,但是有些网页需要用 ...

  7. 用Python脚本模拟登陆获取地铁一卡通的充值和消费记录

    1. 思路 这几天尝试写了个脚本模拟登陆获取地铁一卡通的充值和消费记录,学习了不少新东西,总结下记录下来.整个流程大概这样,首先模拟登陆一卡通的查询网址,分析如何获取验证码,然后就是下载验证码并识别, ...

  8. requests模拟登陆 验证码

    文章目录 1.requests的高级应用 ~ 会话维持 2.打码平台 3.云打码平台接口使用 4.隐藏参数与模拟登陆 1.requests的高级应用 ~ 会话维持 # 利用Session对象发送get ...

  9. 教程 | Python实战 模拟登陆百度云盘

    今天我给大家讲讲如何模拟登陆百度云盘(该分析过程也适用于百度别的产品,比如模拟登陆百度搜索首页,它们的加密流程完全一样,只是提交参数有微小差别). 阅读文章之前,有一些东西需要给大家阐述: 本文并没有 ...

  10. python获取app信息的库_基于Python的模拟登陆获取脉脉好友信息

    代码已经上传到github上 简介: 这是一个基于python3而写的爬虫,爬取的网站的脉脉网(https://maimai.cn/),在搜索框中搜索"CHO",并切换到" ...

最新文章

  1. dijkstra+堆优化
  2. Linux系统断电后起不来,centos/linux 断电后,开机光标闪现不能开启,重新引导
  3. 【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波
  4. 探索Windows Azure 监控和自动伸缩系列1 - 连接中国区Azure
  5. 金蝶K3系统BOM批量导入操作指南
  6. 大型综合办公管理系统源码(OA+HR+CRM)源码免费分享
  7. 高端AP的拆解及保护电路设计
  8. MSM8960 // F200 引导装载程序 (Bootloader) 之研读
  9. “九章”量子计算机与智能优化算法
  10. 凝视联通4G和4G+战略落地半年报,从数据亮点中找出路
  11. 利用Drawable生成圆形图片
  12. 老板要我开发一个OA多级审批流(干货满满)
  13. yed工具的使用(画流程图)及流程图的简单介绍
  14. php怎么实现网页切图,CSS_网站页面切图与CSS注意事项,一、Web页面切图 1) Web页面的 - phpStudy...
  15. 用matlabd批量处理图片
  16. UML系列——时序图(顺序图)
  17. 《卓有成效的管理者》——学习心得(一)
  18. 【论文】医疗大数据方面的资料
  19. 社会治理网格化新华三移动IT助江西铺设综合治理“一张网”
  20. greenplum数据库单机部署

热门文章

  1. 外贸软件如何提升进出口公司业绩 实现降本增效
  2. 微信平台 签名生成工具
  3. agv系统介绍_智能自动化物流系统AGV基础知识(完整介绍)
  4. iOS疯狂详解之启动分层引导动画
  5. 【音视频基础】(一):显示器是如何显示图形数据的一
  6. 计算机硬件技术基础 徐林,水平定向钻机虚拟现实实训系统硬件研发.ppt
  7. Excel ChartType 属性的说明帮助(VBA)
  8. pythonl list 的修改元素
  9. Python实现PDF转换为TXT
  10. MySQL8.0安装与基于二进制日志文件位置的主从复制