admintest166 发表于 2020-4-28 23:00:16

爬取CMD5加密解密网站(适合初入爬虫新生练习反爬)

在做爬虫的时候 肯定会遇到加密的参数要传递 然后需要导入某些库 我觉得网站的有些网站有着现成的 爬下来封装好 自己用

这个CMD5应该是国内比较好用的加密解密的网站(鱼C的登录 当时我就是用这个网站模拟出来的)

这个网站非常适合一些刚学习爬虫的和想学反爬虫的 因为这个网站有着加密参数传递 headers反爬 (都是easy的问题)

CMD5网站的加密参数全部都在网页源代码中 典型的静态网页诟病

思路:首先创建一个seesion 然后先请求一次爬取那些加密参数 拿到以后汇总起来 放在data参数中 然后加入referer 到headers中(这个不加 请求返回回来就是没有解密结果的)

随口说一句 CMD5的是有API的但是收费的{:10_262:}


因为最近在做自己的flask项目 正好可以把这个打包成API{:10_254:}

还有就是这段时间 一直在写自己的flask项目 有点久没有做爬虫 代码可读性 有点差看不懂就打一下断点 {:10_254:}
import requests
from pyquery import PyQuery as pq


url='https://www.cmd5.com/'
request=requests.session()
html_code=request.post(url).text
doc=pq(html_code)
viewstart=doc('#__VIEWSTATE').attr.value
VIEWSTATEGENERATOR=doc('#__VIEWSTATEGENERATOR').attr.value
ContentPlaceHolder1_HiddenField2=doc('#ctl00_ContentPlaceHolder1_HiddenField2').attr.value


a=input('输入MD5参数:')
data={
    '__EVENTTARGET':'Button1',
    '__EVENTARGUMENT':'',
    '__VIEWSTATE':viewstart,
    '__VIEWSTATEGENERATOR':VIEWSTATEGENERATOR,
    #输入加密参数
    'ctl00$ContentPlaceHolder1$TextBoxInput':a,
    #类型   这个类型可以改成别的 如加密参数书 base64 就改成base64
    'ctl00$ContentPlaceHolder1$InputHashType':'md5',
    'ctl00$ContentPlaceHolder1$Button1':'查询',
    'ctl00$ContentPlaceHolder1$HiddenFieldAliCode':'',
    'ctl00$ContentPlaceHolder1$HiddenField1':'',
    'ctl00$ContentPlaceHolder1$HiddenField2':ContentPlaceHolder1_HiddenField2
}

headers={
    'referer':'https://www.cmd5.com/'
}

request_cmd5=request.post(url,data=data,headers=headers).text
two_doc=pq(request_cmd5)
Decrypt=two_doc('#LabelAnswer').text()

print(Decrypt)




Mike_Python0721 发表于 2020-4-29 14:50:45

页: [1]
查看完整版本: 爬取CMD5加密解密网站(适合初入爬虫新生练习反爬)