目标网址:https://www.iqiyi.com/
我们来抓登录包,我们发现passwd这个参数被网站进行了加密,在上一次的文章中,我们已经对它进行过处理,成功的破解的他的js加密代码,我们直接拿过来使用就行。代码部分:
需要导入的库:
import requests
import execjs
from requests import sessions
import re
Js读取:读取上篇文章抠出来的js加密代码
def get_js():#js读取
f = open("爱奇艺.js", 'r', encoding='utf-8') # 打开JS文件,,这个文件是我上篇文章中抠出来的js破解代码
line = f.readline()
htmlstr = ''
while line:
htmlstr = htmlstr+line
line = f.readline()
return htmlstr
js运行
def get_js_data(data):#js运行
jsstr = get_js()
ctx = execjs.compile(jsstr) #加载JS文件
return (ctx.call('rsaFun',data))#调用js方法 第一个参数是JS的方法名,后面的data和key是js方法的参数
登录并查看观看记录函数
def login():
Session=sessions.session()
url="https://passport.iqiyi.com/apis/reglogin/login.action"
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
}
data={
"email":"爱奇艺账号",
"fromSDK":1,
"passwd":get_js_data("爱奇艺登录密码"),
"agenttype":1,
"__NEW":1,
"checkExist":1,
"lang":"",
"ptid":"01010021010000000000",
"nr":"2",
"verifyPhone":"1",
"area_code":"86",
"dfp": "a04a644c84f3d343cfb521a46a898c328e133b337d8f0502e5ba411d3ede8688df"
}
print(data)
resp=Session.post(url=url,headers=headers,data=data)
# print(resp.text)
resp=Session.get("https://l-rcd.iqiyi.com/apis/qiyirc/getallrc?ckuid=e4d0a4f91a85ea0f76607effb48cb0c8&only_long=1&vp=0&pageNum=1&pageSize=20")
# print(resp.text)
videoNames=re.findall('videoName\"\:'+"(.*?)"+'\,',resp.text)
print("你看过:")
for videoName in videoNames:
print(videoName)
我们直接调用login()函数,可以看到运行结果:
完成了,点个赞吧!!!
网友评论