马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在做爬虫的时候 肯定会遇到加密的参数要传递 然后需要导入某些库 我觉得网站的有些网站有着现成的 爬下来封装好 自己用
这个CMD5应该是国内比较好用的加密解密的网站 (鱼C的登录 当时我就是用这个网站模拟出来的)
这个网站非常适合一些刚学习爬虫的和想学反爬虫的 因为这个网站有着加密参数传递 headers反爬 (都是easy的问题)
CMD5网站的加密参数全部都在网页源代码中 典型的静态网页诟病
思路:首先创建一个seesion 然后先请求一次爬取那些加密参数 拿到以后汇总起来 放在data参数中 然后加入referer 到headers中(这个不加 请求返回回来就是没有解密结果的)
随口说一句 CMD5的是有API的但是收费的
因为最近在做自己的flask项目 正好可以把这个打包成API
还有就是这段时间 一直在写自己的flask项目 有点久没有做爬虫 代码可读性 有点差 看不懂就打一下断点 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)
|