Python爬虫中SSL、JS加密、Ajax使用

SSLSSL就是指遵守SSL安全套阶层协议的服务器数字证书(SercureSocketLayer)美国网警公司CA(CertificateAuthority)是数字证书认证中心,是发放、管理、废除数字整数的收信人的第三方机构遇到不信任的SSL证书,需要单独处理from urllib import requestimport ssl# 利用非认证上下文环境替换认证的上下文环境...
摘要由CSDN通过智能技术生成

SSL

  • SSL就是指遵守SSL安全套阶层协议的服务器数字证书(SercureSocketLayer)
  • 美国网警公司
  • CA(CertificateAuthority)是数字证书认证中心,是发放、管理、废除数字证书的收信人的第三方机构
  • 遇到不信任的SSL证书,需要单独处理
from urllib import request

import ssl

# 利用非认证上下文环境替换认证的上下文环境
ssl._create_default_https_context = ssl._create_unverified_context()
url = "https://www.12306.cn/mormhweb" # 

rsp = request.urlopen(url)

html = rsp.read().decode()

print(html)

js加密

  • 有的反爬虫策略采用js对需要传输的数据进行加密处理(通常取md5值)
  • 经过加密,传输的值就是密文
  • 加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者
  • 通过阅读加密算法,就可以模拟出加密过程,从而达到破解
'''
破解有道词典
'''
from urllib import request, parse

def youdao(key):
    url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"

    data = {
   
        "i": "boy",
        "from":"AUTO",
        "to": "AUTO",
        "smartresult": "dict",
        "client": "fanyideskweb",
        "salt": "1523100789519",
        "sign": "b8a55a436686cd89873fa46514ccedbe",
        "doctype": "json",
        "version": "2.1",
        "keyfrom": "fanyi.web"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CH2.Ajax 框架 支持简单加密(Base64/DES)和跨域(Jsonp) 如何以最快捷的方式直接调用服务器方法? 场景: 比如,服务器已有如下方法: namespace CH2 { class BLL{ User Login(string name,string password){ //balabala... } } } 如何写最少的 js 调用以上方法?也许你只需要写五行 js 代码: CH2.BLL.Login( {name: "caihaihua", password: "123456"} ,function(user){ alert('登录成功!'); } ,function(errormessage){ alert('登录失败!' + errormessage);} ); 步骤: 1.网站引用两个dll:CH2.Ajax.dll 和 Newtonsoft.Json.dll 2.把服务器方法添加属性 AjaxMethod。(例一) 3.添加一个一般处理程序,继承于 AjaxHandler<T> (T 为服务器方法的类名) 。(例二) 4.页面引用两个js。(例三) 5.准备工作完成了。ajax 调用服务器方法,只需要在 js 直接写: [namespace].[classname].[methodname](arguments,onsuccess,onfailed) 其, arguments 为参数集合 onsuccess 为调用成功的回调函数 function(returndata) onfailed 为调用失败的回调函数(可选) function(errormessage) (例四) 例一: namespace CH2 { class BLL{ [AjaxMethod] // ←原有方法添加这一属性 User Login(string name,string password){ } } } 例二: <%@ WebHandler Language="C#" Class="Handler" %> using CH2; public class Handler : AjaxHandler<BLL> // ←一般处理程序继承于AjaxHandler<BLL> { //此处不需要任何代码 } 例三: <script type="text/javascript" src="Ajax/Ajax.js"></script> // 配套的 js <script type="text/javascript" src="Ajax/Handler.ashx"></script> // 第 3 步的一般处理程序(注意 url 不带任何传参) 例四: <script type="text/javascript"> btn.onclick = function(){ // 你这样直接调用服务器方法: // CH2.BLL.Login(arguments,onsuccess,onfailed) CH2.BLL.Login( { //服务器方法需要的参数。key 为参数名,value 为对应的 json 对象 name: "caihaihua" ,password: "123456" } , function(data){ //onsuccess 方法。data 为服务器方法返回的结果(User) } , function(errmsg){ //onfailed 方法。 }); } </script>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值