Python 爬虫实例(3)—— 爬取今日头条as cp 算法 解密
关于今日头条的 as cp 算法,只是对时间进行了加密,他们的js代码是压缩处理的,正常格式化就可以了 url = "http://www.toutiao.com/api/pc/feed/"
data = { "category":"news_game",
"utm_source":"toutiao",
"widen":str(i),
"max_behot_time":"",
"max_behot_time_tmp":"",
"tadrequire":"true",
"as":"479BB4B7254C150",
"cp":"7E0AC8874BB0985",
}
headers = { "Host":"www.toutiao.com",
"Connection":"keep-alive",
"Accept":"text/javascript, text/html, application/xml, text/xml, */*",
"X-Requested-With":"XMLHttpRequest",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
"Content-Type":"application/x-www-form-urlencoded",
"Referer":"http://www.toutiao.com/ch/news_hot/",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8", } result1 = session.get(url=url,params=data,headers=headers).text
result2 =json.loads(result1)
今日头条 as cp算法解析,我们在提交的时候"as":"479BB4B7254C150", "cp":"7E0AC8874BB0985",就可以了,有兴趣的同学可以去看看他们的js代码,只是简单的对进行了加密
var e = {};
e.getHoney = function() {
var t = Math.floor((new Date).getTime() / 1e3),
e = t.toString(16).toUpperCase(),
n = md5(t).toString().toUpperCase();
if (8 != e.length) return {
as: "479BB4B7254C150",
cp: "7E0AC8874BB0985"
};
for (var o = n.slice(0, 5), i = n.slice(-5), a = "", r = 0; 5 > r; r++) a += o[r] + e[r];
for (var l = "", s = 0; 5 > s; s++) l += e[s + 3] + i[s];
return {
as: "A1" + a + e.slice(-3),
cp: e.slice(0, 3) + l + "E1"
}
}, t.ascp = e
}(window, document), function() {
var t = ascp.getHoney(),
e = {
path: "/",
domain: "i.snssdk.com"
};
$.cookie("cp", t.cp, e), $.cookie("as", t.as, e), window._honey = t
}(), Flow.prototype = {
init: function() {
var t = this;
this.url && (t.showState(t.auto_load ? NETWORKTIPS.LOADING : NETWORKTIPS.HASMORE), this.container.on("scrollBottom", function() {
t.auto_load && (t.lock || t.has_more && t.loadmore())
}), this.list_bottom.on("click", "a", function() {
return t.lock = !1, t.loadmore(), !1
}))
},
loadmore: function(t) {
this.getData(this.url, this.type, this.param, t)
},
as cp 算法 Python 实现
import time
import hashlib def get_as_cp():
zz ={}
now = round(time.time())
print now #获取计算机时间
e = hex(int(now)).upper()[2:] #hex()转换一个整数对象为十六进制的字符串表示
print e
i = hashlib.md5(str(int(now))).hexdigest().upper() #hashlib.md5().hexdigest()创建hash对象并返回16进制结果
if len(e)!=8:
zz = {'as': "479BB4B7254C150",
'cp': "7E0AC8874BB0985"}
return zz
n=i[:5]
a=i[-5:]
r = ""
s = ""
for i in range(5):
s = s+n[i]+e[i]
for j in range(5):
r = r+e[j+3]+a[j]
zz = {
'as': "A1" + s + e[-3:],
'cp': e[0:3] + r + "E1"
}
print zz if __name__ == "__main__":
get_as_cp()
Python 爬虫实例(3)—— 爬取今日头条as cp 算法 解密的更多相关文章
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- 爬虫—分析Ajax爬取今日头条图片
以今日头条为例分析Ajax请求抓取网页数据.本次抓取今日头条的街拍关键字对应的图片,并保存到本地 一,分析 打开今日头条主页,在搜索框中输入街拍二字,打开开发者工具,发现浏览器显示的数据不在其源码里面 ...
- PYTHON 爬虫笔记九:利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集(实战项目二)
利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集 目标站点分析 今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方 ...
- 使用scrapy爬虫,爬取今日头条搜索吉林疫苗新闻(scrapy+selenium+PhantomJS)
这一阵子吉林疫苗案,备受大家关注,索性使用爬虫来爬取今日头条搜索吉林疫苗的新闻 依然使用三件套(scrapy+selenium+PhantomJS)来爬取新闻 以下是搜索页面,得到吉林疫苗的搜索信息, ...
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- 爬虫七之分析Ajax请求并爬取今日头条
爬取今日头条图片 这里只讨论出现的一些问题,代码在最下面github链接里. 首先,今日头条取消了"图集"这一选项,因此对于爬虫来说效率降低了很多: 在所有代码都完成后,也许是爬取 ...
- 使用scrapy爬虫,爬取今日头条首页推荐新闻(scrapy+selenium+PhantomJS)
爬取今日头条https://www.toutiao.com/首页推荐的新闻,打开网址得到如下界面 查看源代码你会发现 全是js代码,说明今日头条的内容是通过js动态生成的. 用火狐浏览器F12查看得知 ...
随机推荐
- Visual Studio技巧集锦
总结了一下VS的使用快捷键, 以下这些是必须转化为肌肉记忆的. 1.Ctrl+Shift+V循环粘贴不同的内容 剪贴板最多可以保存20项内容,通过Ctrl+Shift+V可以循环粘贴出之前复制过的内容 ...
- Android学习笔记(三)之带有侧边索引的快速查找(跟带字母索引查找的通讯录差不多)
喜欢另辟蹊径的我,在这里废话不多说了,直接上代码和图片了. 效果图如下: 第一步:MainActivity的代码如下: package net.loonggg.test; import java.ut ...
- Homebrew-macOS缺失的软件包管理器(简称brew)
[简介] brew又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,只需要一个简单的命令,非常方便 [遇到的问题] 在真正了解软件包管理工具之前,一直是 ...
- 嵌入式linux内核和根目录制作
系统组成:Bootloader, Boot parameters, Kernel, Root filesystem嵌入式linux系统有linux内核与根文件系统两部分构成,两者缺一不可. 内核制作: ...
- dwz关闭当前dialog
首先,前台代码如下: <form method="post" class="pageForm required-validate" onsubmit=&q ...
- matlab从文件夹名中获得该文件夹下所图像文件名
function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...
- myeclipse使用maven教程
本教程包括 1.使用myeclipse构建maven下载jar包 2.使用myeclipse运行maven命令 3.使用myeclipse管理maven项目 搭建maven教程以后有时间了贴进来. 1 ...
- log4net 使用笔记
一.Log4net特征 1.自定义日志输出级别 Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外 ...
- 【中英】mac电脑清理软件 ToolWiz Mac Boost
简单介绍: ToolWiz Mac Boost是一款适用于Mac电脑清理加速最好的终极应用, 使您的Mac电脑干净有条理, 执行飞速且稳定.始终保持最佳状态! ToolWiz Mac Boost 运用 ...
- 9款HTML5实现的超酷特效
之前我们推荐了8款HTML5实现的特效和应用,今天我们带来的这9款热门的HTML5特效同样会带给你全新的视角和体验. HTML5是HTML的升级版,HTML5有两大特点:首先,强化了 Web 网页的表 ...