Python爬虫:爆破百度云提取码(留坑)

留坑预警!!貌似百度会封掉进行爆破的ip,所以暂且先不写了

贴一个调用别人接口的代码

import requests
import re
from requests.exceptions import HTTPError

if __name__=="__main__":
    url=input("Input URL")
    #测试用例  http://pan.baidu.com/s/1eR4vrk2 提取码8ij2

    wpurl="https://nuexini.gq/bdp.php?url="+url
    #访问这个网址,可能直接会有提取码
    #如果这里没有提取码的话就只能爆破了

    try:
        wpres=requests.get(wpurl)   
        wpres.raise_for_status()
        wpres.encoding="gbk"
    
    except HTTPError:
        print("HTTPError")
    except ConnectionError:
        print("Failed to connect!")
    
    wphtml=wpres.text
    #返回JSON格式的数据
    #提取码位置在"access_code":"8ij2"
    wporiginal=re.findall("access_code\":\"....",wphtml)
    
    if len(wporiginal)!=0:
        wporiginal=str(wporiginal[0]).split("\"")
        print("pwd is",wporiginal[2])
    else:
        print("Sorry,we can't find pwd of this url or it doesn't actually need a pwd.")
        print("Maybe u want to try to brute force?")
        BF=input("Enter \"y\" to continue.")
        if BF=="y":
            print("Start Brute Force...")

下面是抓包分析准备爆破的部分,不完整,有空继续

从Fiddler开始

不必多说,在win下学抓包的必备软件。另外推荐一个Firefox插件Toggle Fiddler Proxy,开启后Firefox所有流量都走Fiddler,单击关闭不再抓包,十分好用,配置证书等基本教程就不讲了,进入正题。

测试用链接:

https://pan.baidu.com/s/1utOcrcv4EuQ4juj9jb4ENA

提取码

579e

打开Fiddler、Firefox、TFP插件,F12,输入测试用链接,跳转
Python爬虫:爆破百度云提取码(留坑)_第1张图片Fiddler抓的第一个包是
在这里插入图片描述
然后跳转至
在这里插入图片描述
注意surl首位的1没了

输入一个错误的提取码8888抓一下
Python爬虫:爆破百度云提取码(留坑)_第2张图片可以看到应该是用POST方式向此网址提交了表单

查看此包的TextView
在这里插入图片描述
而在Response中
在这里插入图片描述
然后输入正确的提取码
在这里插入图片描述Response
在这里插入图片描述errno变成了0,稍后会根据errno的value作为是否停止爆破的依据

再来看一下如何得到这个网址的各项参数

输入错误提取码时的GET请求参数如下

/share/verify?
surl=utOcrcv4EuQ4juj9jb4ENA
&t=1566969477016
&channel=chunlei
&web=1
&app_id=250528
&bdstoken=null
&logid=MTU2Njk2OTQ3NzAxODAuODI4MjY1Mjk5ODQ5MjQ0NA==
&clienttype=0 

表单
Python爬虫:爆破百度云提取码(留坑)_第3张图片

输入正确提取码时的GET请求参数

/share/verify?
surl=utOcrcv4EuQ4juj9jb4ENA
&t=1566969747746
&channel=chunlei
&web=1
&app_id=250528
&bdstoken=null
&logid=MTU2Njk2OTc0Nzc0NzAuMDEwMzUxNjA2MzAyMjgyMzc5
&clienttype=0 

表单
Python爬虫:爆破百度云提取码(留坑)_第4张图片

surl 链接末尾的特征字段去掉首位
t
channel=chunlei 固定
web=1 固定
app_id=250528 固定
bdstoken=null 固定
logid
clienttype=0 固定

Tips:抓的时候记得经常清cookies,不然输过一次正确的提取码之后就直接跳转进入保存文件的页面了,推荐插件Web Developer

那么去哪找t、logid这两项参数呢

查看源码

view-source:https://pan.baidu.com/share/init?surl=utOcrcv4EuQ4juj9jb4ENA

按ctrl+f在页面中查找t=
在这里插入图片描述
在代码中用正则提取这13位数字

你可能感兴趣的:(Python爬虫)