收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
正文
示例结果
{“returnCode”:0,“url”:“https://www.jd.com/”}
到这里京东二维码已经登录成功了
可以看到这个 url 的参数有 page,pageSize,不用猜都知道这是刷新的优惠券列表,抓它
def coupon_list():
url = ‘https://a.jd.com/indexAjax/getCouponListByCatalogId.html’
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://a.jd.com/?cateId=118’,
}
couponList = []
for i in range(1, 20):
params = {
‘callback’: ‘jQuery{}’.format(random.randint(1000000, 9999999)),
‘catalogId’: ‘118’,
‘page’: str(i),
‘pageSize’: ‘9’,
‘_’: str(int(time.time() * 1000)),
}
try:
resp = session.get(url=url, params=params, headers=headers)
json = parse_json(resp.text)
couponList.extend(json[‘couponList’])
if json[‘totalNum’] == 1:
continue
else:
break
except Exception:
print(‘出错了!’)
return couponList
示例结果就不写了,返回的 json 串太长了
最后一步领取优惠劵,在浏览器控制台中 url 地址上有一个 key,这个 key 存在与优惠劵列表的返回值中
最后一步,领取优惠券
def get_coupon(coupon_list):
url = ‘https://a.jd.com/indexAjax/getCoupon.html’
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://a.jd.com/?cateId=118’,
}
for coupon in coupon_list:
params = {
‘callback’: ‘jQuery{}’.format(random.randint(1000000, 9999999)),
‘key’: coupon[‘key’],
‘type’: ‘1’,
‘_’: str(int(time.time() * 1000)),
}
time.sleep(1)
resp = session.get(url=url, params=params, headers=headers)
print(resp.text)
示例结果
jQuery1912666({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery3381540({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery6247320({“code”:“16”,“success”:false,“message”:“本时段优惠券已抢完,请14:00再来吧!”})
jQuery5888701({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery5048959({“code”:“14”,“success”:false,“message”:“您已经参加过此活动,别太贪心哟,下次再来~”})
jQuery8608381({“code”:“14”,“success”:false,“message”:“您已经参加过此活动,别太贪心哟,下次再来~”})
jQuery2539212({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery6439595({“code”:“999”,“success”:true,“message”:“领券成功”})
jQuery2972325({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery1697862({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery1905738({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery7639432({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery8239706({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
jQuery1221489({“code”:“15”,“success”:false,“message”:“您今天已经参加过此活动,别太贪心哟,明天再来~”})
import requests
import random
import time
import os
import json
from PIL import Image
user_agent = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’
session = requests.session()
def show_QRcode():
url = ‘https://qr.m.jd.com/show’
params = {
‘appid’: 133,
‘size’: 147,
‘t’: str(int(time.time() * 1000)),
}
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://passport.jd.com/new/login.aspx’,
}
resp = session.get(url=url, headers=headers, params=params)
QRcode_path = ‘QRcode.png’
with open(QRcode_path, ‘wb’) as f:
for chunk in resp.iter_content(chunk_size=1024):
f.write(chunk)
QRcode = Image.open(QRcode_path)
QRcode.show()
def check_QRcode():
url = ‘https://qr.m.jd.com/check’
params = {
‘appid’: ‘133’,
‘callback’: ‘jQuery{}’.format(random.randint(1000000, 9999999)),
‘token’: session.cookies.get(‘wlfstk_smdl’),
‘_’: str(int(time.time() * 1000)),
}
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F’,
}
resp = session.get(url=url, headers=headers, params=params)
resp_json = parse_json(resp.text)
if ‘ticket’ in resp_json:
print(resp_json)
return resp_json[‘ticket’]
else:
print(resp_json[‘msg’])
print(‘请刷新JD登录二维码!’)
os._exit(0)
def validation_QRcode(ticket):
url = ‘https://passport.jd.com/uc/qrCodeTicketValidation’
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F’,
}
params={
‘t’: ticket
}
resp = session.get(url=url, headers=headers, params=params)
print(resp.text)
def parse_json(str):
return json.loads(str[str.find(‘{’):str.rfind(‘}’) + 1])
def coupon_list():
url = ‘https://a.jd.com/indexAjax/getCouponListByCatalogId.html’
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://a.jd.com/?cateId=118’,
}
couponList = []
for i in range(1, 20):
params = {
‘callback’: ‘jQuery{}’.format(random.randint(1000000, 9999999)),
‘catalogId’: ‘118’,
‘page’: str(i),
‘pageSize’: ‘9’,
‘_’: str(int(time.time() * 1000)),
}
try:
resp = session.get(url=url, params=params, headers=headers)
json = parse_json(resp.text)
couponList.extend(json[‘couponList’])
if json[‘totalNum’] == 1:
continue
else:
break
except Exception:
print(‘出错了!’)
return couponList
def get_coupon(coupon_list):
url = ‘https://a.jd.com/indexAjax/getCoupon.html’
headers = {
‘User-Agent’: user_agent,
‘Referer’: ‘https://a.jd.com/?cateId=118’,
}
for coupon in coupon_list:
params = {
‘callback’: ‘jQuery{}’.format(random.randint(1000000, 9999999)),
‘key’: coupon[‘key’],
‘type’: ‘1’,
‘_’: str(int(time.time() * 1000)),
}
time.sleep(1)
resp = session.get(url=url, params=params, headers=headers)
print(resp.text)
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-YBrDc2Cg-1713814136900)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!