Python爬虫连载8-JS加密(一)】的更多相关文章

一.JS加密之“盐”​ 1.salt属性“盐":多用于密码学,比如我们的银行卡是六位密码,但是实际上在银行的系统里,我们输入密码后,会给原始的密码添加若干字符,形成更加难以破解的密码.这个过程我们称为”加盐“. """ 处理JS加密 """ import time,random ​ def getSalt(): """ salt公式:"" + ((new Date).getTime()…
一.JS加密 1.有的反爬虫策略采用js对需要传输的数据进行加密处理. 2.经过加密,传输的就是密文 3.加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者 4.通多阅读加密算法,就可以模拟出加密过程,从而达到破解. 5.举一个案例 """ 破解有道词典 """ from urllib import request,parse ​ def youdao(key): url = "http://www.fany…
一.参考资料 1.<Python网络数据采集>图灵工业出版社 2.<精通Python爬虫框架Scrapy>人民邮电出版社 3.[Scrapy官方教程](http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html) 4.[Python3网络爬虫](http://blog.csdn.net/c406495762/article/details/72858983 二.前提知识 url.http协议.web前端:html\…
经过一段时间的python学习,能写出一些爬虫了.但是,遇到js动态加载的网页就犯了难.于是乎谷歌.百度,发现个好介绍http://www.jianshu.com/p/4fe8bb1ea984 主要就是分析网页的加载过程,从网页响应中找到JS脚本返回的JSON数据.(上边的网址介绍很详细,下边就直接贴代码,记录下) 1.今日头条的 #coding:utf-8 import requests import json #今日头条热词获取,get方法 url = 'http://www.toutiao…
前言 数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对应的人手上. 现代 ,在网络发展初期,网络的数据安全性是没有被足够的重视的.事实上,当时为了实现数据可以通过网络进行传输已经耗费了科学家大部分脑细胞,因此在TCP/IP协议设计的初期,他们也实在没有太多精力去过多考虑数据在网络传输过程中可能存在的安全性问题.随着TCP/IP协议及相关技术的日渐成熟,网络数据传输技术越来越稳定,…
一.Request模块 1.HTTP for Humans,更简洁更友好 2.继承了urllib所有的特征 3.底层使用的是urllib3 4.​开源地址:https://github.com/requests/requests 5.中文文档​:https://requests.readthedocs.io/zh_CN/latest/ 6.先安装这个包:pip install requests 7.get请求 (1)requests.get() (2)requests.request("get&…
一.访问网络的两种方法 1.get:利用参数给服务器传递信息:参数为dict,然后parse解码 2.post:一般向服务器传递参数使用:post是把信息自动加密处理:如果想要使用post信息,需要使用到data参数 3.Content-Type:application/x-www.form-urlencode 4.Content-Length:数据长度 5.简而言之,一旦更改请求方法,请注意其他请求头信息相适应 6.urllib.parse.urlencode可以将字符串自动转换为上面的信息.…
一.cookie的保存与读取 1.cookie的保存-FileCookie.Jar from urllib import request,parse from http import cookiejar #创建cookiejar实例 filename = "cookie.txt" cookie = cookiejar.MozillaCookieJar(filename) #生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor…
一.ProxyHandler处理(代理服务器) 1.使用代理IP,是爬虫的常用手段 2.获取代理服务器的地址: www.xicidaili.com www.goubanjia.com 3.代理用来隐藏真实访问中,代理不允许频繁访问某一个固定网站,所以代理一定要很多很多. 4.基本使用步骤: (1)设置代理地址 (2)创建PoxyHandler (3)创建Opener (4)安装Opener """ 使用代理访问百度首页 ​ """ from ur…
一.error 1.URLError产生的原因:(1)没有网络:(2)服务器连接失败:(3)不知道指定服务器:(4)是OSError的子类 from urllib import request,error ​ if __name__ == "__main__": url = "http://www.baidu.comfdsfdfsf" try: req = request.Request(url) rsp = request.urlopen(req) html =…