南京专业网站制作公司有哪些,亚马逊网网站建设规划报告,想自己搭建网站得怎么做,做网站的变成语言哪类最简单这不是教程#xff0c;所以没有基础的你看不懂也很正常#xff0c;去后面点个赞就好。一. 目标链接上一个推送处理了一个不带密码的蓝奏云分享链接#xff0c;这回处理一下带密码的分享链接。https://lanzoux.com/b015ybdmh 密码:9n8z为了能有一个合适的链接来练手… 这不是教程所以没有基础的你看不懂也很正常去后面点个赞就好。一. 目标链接上一个推送处理了一个不带密码的蓝奏云分享链接这回处理一下带密码的分享链接。https://lanzoux.com/b015ybdmh 密码:9n8z为了能有一个合适的链接来练手咱还特地注册了一下蓝奏云。注册了才发现蓝奏云竟然只有文件夹分享才有密码单个文件是没有密码的……而且是上传即生成外链和百度网盘还是有很大差别的。二. 页面解析浏览器打开上述链接后就是输入密码的界面了。很明显咱们要的东西需要输入密码才能看到。在浏览器上查看一下网页源代码可以看到一个密码提交靠的是一个ajax请求提取一下这里面的有用信息请求方式type : post,请求URL/filemoreajax.php请求数据data : { lx:2,fid:2659087,uid:138195,pg:pgs,rep:0,t:iaxwyd,k:igw906,up:1,ls:1,pwd:pwd},这边有一个需要注意的点t、k这两个参数对应的变量是会变化的截图中t、k两个参数对照iaxwyd和igw906这两个变量过段时间刷新一下这两个变量名又会发生改变。三. Python 库本次使用的函数库Http 请求RequestsHtml 解析BeautifuSoupJs 代码转 xmljs2xmlXml 解析lxml一般人遇到参数包括在script内部时通常是使用正则表达式来处理但咱这边使用js2xml这个函数库将 Js 代码转换成 Xml 格式方便提取参数。四. 开始写代码懒得看过程的可以直接到最底部看最终的辣鸡代码。1. 引用需要的函数库#HTTP 请求import requests#HTML 解析from bs4 import BeautifulSoup#JS 代码转 XMLimport js2xml#XML 解析from lxml import etree2. 获取网页源码def getHtml(url): #获取网页源代码return requests.get(url,headers header).content.decode(utf-8)3. 提取需要的 JS 代码获取之后将我们需要的代码提取出来也就是上面那张图标签里的东西def getSrcJsCode(html): #获取包含参数的JS代码 soup BeautifulSoup(html,lxml) scrLabel soup.select(html script) jsCode soup.select(html script)[len(scrLabel)-2].string.replace(u\u3000, ).replace( , ) #顺便删掉一些非法字符return jsCode4. 将 JS 代码转换成 XML这边用到了 js2xml这个函数库,将 JS 代码转换成 XML 方便后续的参数提取def getXmlCode(jsCode): #将Js转换成XML src_text js2xml.parse(jsCode, encodingutf-8, debugFalse)return js2xml.pretty_print(src_text)5. 从 XML 中获取各项参数根据 XML 标签提取相应的参数def getParameters(src_tree,pwd): #获取各项参数 parameters {} selector etree.HTML(src_tree) #先获取会随时间改变的变量名 tName selector.xpath(//var/name)[3] kName selector.xpath(//var/name)[4] titleName selector.xpath(//var/name)[0] #先获取会随时间改变的变量名 parameters[title] selector.xpath(//var[nametitleName]/string)[0].text parameters[fid] int(selector.xpath(//property[namefid]/number/value)[0]) parameters[lx] int(selector.xpath(//property[namelx]/number/value)[0]) parameters[uid] selector.xpath(//property[nameuid]/string)[0].text parameters[rep] selector.xpath(//property[namerep]/string)[0].text parameters[up] int(selector.xpath(//property[nameup]/number/value)[0]) parameters[ls] int(selector.xpath(//property[namels]/number/value)[0]) parameters[t] selector.xpath(//var[nametName]/string)[0].text parameters[k] selector.xpath(//var[namekName]/string)[0].textreturn parameters6. 获取文件列表参数已经获取好了接下来就是获取文件列表了。def getFileList(parameters):return requests.post(urlhttps://lanzous.com/filemoreajax.php,dataparameters,headersheader).content.decode(utf-8)7. 最后整合一下代码import requestsfrom bs4 import BeautifulSoupimport js2xmlfrom lxml import etreeheader{user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36,}def getHtml(url): #获取网页源代码return requests.get(url,headers header).content.decode(utf-8)def getSrcJsCode(html): #获取包含参数的JS代码 soup BeautifulSoup(html,lxml) scrLabel soup.select(html script)return soup.select(html script)[len(scrLabel)-2].string.replace(u\u3000, ).replace( , )#删掉非法字符def getXmlCode(jsCode): #将Js转换成XML src_text js2xml.parse(jsCode, encodingutf-8, debugFalse)return js2xml.pretty_print(src_text)def getParameters(src_tree,pwd): #获取各项参数 parameters {} selector etree.HTML(src_tree) tName selector.xpath(//var/name)[3] kName selector.xpath(//var/name)[4] titleName selector.xpath(//var/name)[0] parameters[title] selector.xpath(//var[nametitleName]/string)[0].text parameters[fid] int(selector.xpath(//property[namefid]/number/value)[0]) parameters[lx] int(selector.xpath(//property[namelx]/number/value)[0]) parameters[uid] selector.xpath(//property[nameuid]/string)[0].text parameters[rep] selector.xpath(//property[namerep]/string)[0].text parameters[up] int(selector.xpath(//property[nameup]/number/value)[0]) parameters[ls] int(selector.xpath(//property[namels]/number/value)[0]) parameters[t] selector.xpath(//var[nametName]/string)[0].text parameters[k] selector.xpath(//var[namekName]/string)[0].textreturn parametersdef getFileList(parameters): #获取文件列表return requests.post(urlhttps://lanzous.com/filemoreajax.php,dataparameters,headersheader).content.decode(utf-8)def main(url,pwd): #整合一下 html getHtml(url) jsCode getSrcJsCode(html) src_tree getXmlCode(jsCode) parameters getParameters(src_tree,pwd) parameters[pwd]pwd parameters[pg]1 title parameters[title]return getFileList(parameters),titleif __name__ __main__: urlhttps://lanzous.com/b015ybdmh pwd 9n8z fileList,title main(url,pwd) print(fileList,title)整合好啦看不懂很正常本来就不是教程呀而且咱的代码写得也不规范。六. 结束以下就是本次实验用的链接获取的内容urlhttps://lanzous.com/b015ybdmhpwd 9n8z#文件夹一号#新建文本文档.zip新建文本文档 (10).zip新建文本文档 (9).zip......收录到盘他之后如下图所示(并没有收录)最后大家手里有没有专门分享蓝奏云的网站呀我需要来一个试一试。有的话请在留言区留个言。