python3 爬取今日头条文章(巧妙避开as,cp,_signature)

2023-11-14

使用环境:

  • python3
  • scrapy
  • win10

爬取思路

(一)关于as、cp的生成与_signature的想法

对于今日头条的爬虫,网上搜索出来的文章大多是基于崔庆才(通过搜索爬取美女街拍的方案),怎么说呢,类似这样的虽说是个巧办法,但是用到工作中却是行不通的。在这里,网上是搜了又搜,谷歌,百度都用上了。在这里做一下今日头条爬取文章的几个方案。

  • 一个方案是:破解了as,cp,却没能破解_signature:

今日头条的as、cp破解

用的技术有execjs,一个执行js代码的框架,但是还是不能很好的把浏览器环境(比如Node环境)嵌入进去,

使用了一个PyV8的js库,主要的获取_signature

给出了一段很操蛋的代码:

def get_signature(self,user_id):
   """
   计算_signature    
   :param user_id: user_id不需要计算,对用户可见
   :return: _signature
   """
   req = requests.Session()
   # js获取目的
   jsurl = 'https://s3.pstatp.com/toutiao/resource/ntoutiao_web/page/profile/index_8f8a2fb.js'
   resp = req.get(jsurl,headers = self.headers)
   js =  resp.content
   effect_js = js.split("Function")
   js = 'var navigator = {};\
           navigator["userAgent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36";\
        ' +  "Function" + effect_js[3] + 
             "Function" + effect_js[4] + 
        ";function result(){ return TAC.sign(" + user_id + ");} result();"
   # PyV8执行步骤
   with PyV8.JSLocker():
      self.ctxt.enter()  #已在上面初始化过
      vl5x = self.ctxt.eval(js) 
      self.ctxt.leave()
   self.LOG.info("圣诞快乐")
   return vl5x

PyV8这个库在win10上死活安装不上去,后面在centos7环境装好了,执行这一段代码,直接报了个内存不够的错误好像,直接调用TAC.sign的方法却少了Node环境(大一点讲是浏览器环境),还是报错。可能这确实是个方法,不过在简书上反馈的人很少,不知道是我弄不出来,还是他们都弄出来了。

(二)后面索性直接用了自己的方法:
绕过_signature这个参数,直接请求网页端(wap)的数据信息。

右键检查,点击到json一栏,选中其中一个url

URL一:

https://www.toutiao.com/pgc/ma/?page_type=1&max_behot_time=1532168614&uid=4377795668&media_id=4377795668&output=json&is_json=1&count=10&from=user_profile_app&version=2&as=A1054BF5B303CEE&cp=5B5353EC0EEE0E1&callback=jsonp5

URL二:
https://www.toutiao.com/pgc/ma/?page_type=1&max_behot_time=1532166905&uid=4377795668&media_id=4377795668&output=json&is_json=1&count=10&from=user_profile_app&version=2&as=A1C5EB457343CF5&cp=5B53839C4FC53E1&callback=jsonp6
as,cp在之前的文章中,我们已经能够求出来了,现在需要做的就是如何拼接这一串url,

根据上面两个url的对比,我们只需要更换掉max_behot_time,和jsonp

这样整个列表页的数据我们就获取出来了。

image.png

接下来解析详情页的数据,大概就简单了许多。

image.png

查看网页源代码:
这正是我们想要的数据,使用正则获取就可以了。
image.png

到这里我们就将今日头条的数据可以完全爬取出来了。

需要源码的可以加小密圈:

image.png


更多原创博客请访问:

徐代龙的技术专栏

https://blog.csdn.net/xudailong_blog/article/details/78762262

个人博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3 爬取今日头条文章(巧妙避开as,cp,_signature) 的相关文章

  • python3 [爬虫入门实战]爬虫之scrapy爬取中国医学人才网

    自己第一次试着用scrapy进行爬取网页 总共爬下9240条数据 也就两分钟不到 400多页吧 用的比较简单 但是爬取成功后感觉成就感满满的 来张爬取结果图 爬取字段 hospitalName hospitalDesc hospitalSi
  • python3 [爬虫入门实战]爬虫之scrapy爬取织梦者网站并存mongoDB

    主要爬取了编程栏目里的其他编程里的36638条数据 过程是自己一步一步的往下写的 有不懂的也是一边找笔记 一边百度 一边调试 遗憾 没有进行多栏目数据的爬取 只爬了一个栏目的数据 希望有想法的有钻研精神的可以自己去尝试爬取一下 难度应该不会
  • Centos7 安装Python3和scrapy(正确安装姿势)

    苦逼的前夜 昨晚很辛苦 搞到晚上快两点 最后还是没有把python3下的scrapy框架安装起来 后面还把yum这玩意给弄坏了 一直找不到命令 今天早上又自己弄了快一上午 又求助 函兮 弄了快一个中午 最后无奈还是没有弄好yum跟pytho
  • python3 [爬虫入门实战] 查看网站有多少个网页(站点)

    前提 进行爬虫的时候需要进行站点的爬取 再选用合适的爬虫框架 所以这里不得不需要知道一下一个网站到底有多少个网页组成 一个域名网站中到底有多少个站点 查看的方法很简单 直接百度就可以了 例如需要知道豆丁网的站点有多少个 直接在百度中输入 s
  • scrapy提高爬取速度

    scrapy在单机跑大量数据的时候 在对settings文件不进行设置的时候 scrapy的爬取速度很慢 再加上多个页面层级解析 往往导致上万的数据可能爬取要半个小时之久 这还不包括插入数据到数据库的操作 下面是我在实验中测试并且验证爬取速
  • python爬虫利器:user agent switcher

    一 推荐理由 方便 相比于在浏览器中右键检查 再将浏览器设置成手机端 如下图 user agent switcher给我们带来更多的是方便 一次设置好 就不怕每次麻烦的右键检查 设置成手机端的重复性操作了 这对于python爬虫算是一个比较
  • python3 爬虫实战之爬取网易新闻APP端

    一 使用工具 这里使用了火狐浏览器的user agent插件 不懂的可以点这里火狐插件使用 二 爬虫操作步骤 百度 网易新闻并选择 步骤一 步骤二 步骤三 步骤四 最后一步 注意点 1 网易新闻类型 一共是下面的几种 BBM54PGAwan
  • python3 [爬虫入门实战] 爬虫之selenium 模拟QQ登陆抓取好友说说内容(暂留)

    很遗憾 部分数据有些问题 不过还是可以进行爬取出来的 先贴上源代码 encoding utf8 from selenium import webdriver import re from bs4 import BeautifulSoup f
  • python3 抖音短视频链接去水印下载视频到本地

    基于近段时间对抖音 快手 秒拍等视频抓取一直想搞一下 加了个QQ群 里面全是自媒体 就是抖音 快手 秒拍的视频搬运工 把一个平台搬到另外一个平台上 去除水印 降低被干掉的危险 经过半天的琢磨 自己用python也搞出来一个根据抖音分享视频链
  • python3 [爬虫入门实战] 爬虫之使用selenium 爬取百度招聘内容并存mongodb

    爬取的内容为百度招聘页面下的python 杭州地区 所要爬取的内容 一共爬取的是6个字段 1 招聘岗位 2 招聘城市 3 招聘公司 4 招聘薪资 5 招聘日期 6 招聘来源网站 用的是selenium beautifulsoup mongo
  • scrapy爬虫框架实例二 当当图书信息

    spider py import scrapy from DD items import DdItem class DdSpider scrapy Spider name dd allowed domains http search dan
  • python3 [爬虫入门实战]爬虫之scrapy爬取游天下南京短租房存mongodb

    总结 总的来说不是很难 只是提取的字段有些多 总共获取了一个120多个南京房租信息 1 爬取的item coding utf 8 Define here the models for your scraped items See docum
  • scrapy屏幕log日志输出保存到txt文本中

    在使用scrapy框架的时候 因为scrapy在屏幕上面输出的日志一直在跑 有些错误又抓不到 无奈只能先把log日志放在文件中 慢慢进行错误日志的分析 如图所示 我们需要设置的地方只在settings py文件夹中进行设置就可以了 LOG
  • python selenium 获取frame中的元素

    版权声明 本文为徐代龙原创文章 未经徐代龙允许不得转载 https blog csdn net xudailong blog 使用情景 在很多的视频播放网站 视频播放页面往往获取不到iframe里面的内容 也或者是模拟登陆的时候 会跳入一个
  • python3 [爬虫入门实战]scrapy爬取盘多多五百万数据并存mongoDB

    总结 虽然是第二次爬取 但是多多少少还是遇到一些坑 总的结果还是好的 scrapy比多线程多进程强多了啊 中途没有一次被中断过 此版本是盘多多爬取数据的scrapy版本 涉及数据量较大 到现在已经是近500万的数据了 1 抓取的内容 主要爬
  • python3 scrapy爬取微信公众号及历史信息V1.0

    环境 python3 scrapy 目的 写这篇文章主要是做一下纪念 毕竟是搞了快两天的东西了 今天加大了量 使用scrapy爬取100多个微信公众号 然后出现IP被封的情况下 当然了 这种情况并不是没有办法解决 只需要在scrapy中进行
  • uniapp小程序练手项目并上线

    如题 做一个自己的小程序 并在各大小程序开发者平台上线 背景 因没有小程序开发经验 且前端知识掌握得不好 作为一个小程序爱好者 总想有一款自己的小程序 同时也想有一款自己的app 虽然目前还没有实现 在整体难度上来说 小程序的实现比app的
  • python3 No module named 'PIL'

    在python3 scrapy框架已经安装好的情况下 还是出现了 python3 No module named PIL 在Python3下 PIL已经被Pillow替代了 所以只需要安装Pillow就可以了 使用命令 pip3 insta
  • Scrapy 存数据到Hbase

    网上很多教程都是使用Scrapy存数据到MongoDB Mysql或者直接存入Excel中的 很少有存入到Hbase里面的 前言 为什么没有像大多数网上那样将数据存入到MongoDB Mysql中呢 因为项目中使用到Hbase加上阿里云的推
  • python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)

    老实说 懵逼啊 这次爬取的是智联招聘上的求职数据 虽然没有仔细正确核对一下数据是否具有重复性 随机抽查了些 数据大部分还是能对上来的 这次爬取的智联招聘上的数据90页 每页60条 主要抓取的是android开发工程的数据 抓取的数据为全国的

随机推荐

  • 课时 16 自测题

    以下说法错误的是 单选题 A etcd 是一个商业软件 B etcd 使用 go 语言编写 C etcd 是一个分布式系统 通常由多个 server 组成一个集群 关于 etcd 重要时间节点 以下说法错误的是 单选题 A etcd 最初由
  • react 初级基础

    react基本使用 项目创建 项目的创建命令 npx create react app react basic 创建一个基本元素进行渲染 1 导入react 和 react dom import React from react impor
  • 竞赛 交通目标检测-行人车辆检测流量计数 - 竞赛

    文章目录 0 前言 1 目标检测概况 1 1 什么是目标检测 1 2 发展阶段 2 行人检测 2 1 行人检测简介 2 2 行人检测技术难点 2 3 行人检测实现效果 2 4 关键代码 训练过程 最后 0 前言 优质竞赛项目系列 今天要分享
  • 函数或变量 x 无法识别。_这个变量陷阱,连高手都躲不开

    点击上方 Python小白集训营 选 星标 公众号 重磅干货 第一时间送达 图 Pexels 日期 2021 1 2 你可能会好奇 是什么样的陷阱 连高段位的python选手也会频繁踩坑 讲这个topic前 先来讲一个例子 这是我前几个月在
  • 【华为OD考试真题】报数游戏(Python实现)

    前言 考试题目大同小异 练习真题是通过考试的捷径 思路仅供参考 如果有更好的思路 欢迎一起交流学习 创作不易 文章若对你有帮助 点个关注 谢谢 题目描述 100个人围成一圈 每个人有一个编码 编号从1开始到100 他们从1开始依次报数 报到
  • 利用LSB算法隐藏图片信息的MATLAB实现

    前一篇博客中介绍了利用LSB算法隐藏文字信息的MATLAB实现 http blog csdn net csdn moming article details 50936687 在此基础上 下面介绍利用LSB算法隐藏图片信息的MATLAB实现
  • Mt2015 lfsr

    Taken from 2015 midterm question 5 See also the first part of this question mt2015 muxdff Write the Verilog code for thi
  • python:使用unquote对url解码

    参考 python之urlencode quote 及unquote wf592523813的博客 CSDN博客 python unquote
  • 企业架构成功之道读书笔记

    企业架构成功之道读书笔记 原文 https www leanix net en enterprise architecture 企业架构成功之道 理解下一代企业架构的价值 降低成本 应用合理化 速赢 10 软件授权优化 项目合理化 应用下线
  • 图形视图(17):【类】QGraphicsWidget[官翻]

    文章目录 详述 公共类型 enum anonymous 属性 autoFillBackground bool focusPolicy Qt FocusPolicy font QFont geometry QRectF layout QGra
  • final定义类、方法、属性以及多态性

    1 在Java中final称为终结期 在java里面可以使用 不能有子类 2 使用final定义的方法不能被子类覆写 3 使用final定义的变量就成了常量 常量必须在定义的时候设置 多态性基本概念以及相关的使用限制 多态性的依赖 转载于
  • Sentinel客户端调用并发控制

    前言 当链路中某个应用出现不稳定 导致整个链路调用变慢 如果不加控制可能导致雪崩 这种情况如何处理呢 一 慢调用现象分析 在分布式链路中调用中 调用关系如下 methodA1与methodA2在同一个应用中 链路标号 调用链 链路1 met
  • luajit官方性能优化指南和注解

    luajit官方性能优化指南和注解 luajit是目前最快的脚本语言之一 不过深入使用就很快会发现 要把这个语言用到像宣称那样高性能 并不是那么容易 实际使用的时候往往会发现 刚开始写的一些小test case性能非常好 经常毫秒级就算完
  • 怎么解决Greenplum中用pg

    基本思路是为ns1 table1设置分布策略 root登陆master host切换到Greenplum的管理员用户 比如gpadmin su gpadmin使用psql连接数据库 psql databasename设置随机分布策略alte
  • 超好玩地铁跑酷游戏,内涵源代码

    直接上代码 include
  • java的多重循环和程序调试

    java的多重循环和程序调试 一 掌握Java二重循环 多重 嵌套 注意 1 外层循环控制行 内层循环控制列 每行打印的内容 2 外层循环执行一次 内层循环执行一遍 3 一般多重循环值的就是二重循环 二 使用跳转语句控制程序的流程 retu
  • 在线Plist文件格式转Json文件格式

    Plist文件是一种用于存储应用程序配置信息的文件格式 其中包含应用程序的各种设置和数据 在过去 Plist文件通常是以 plist 格式存储的 然而 随着时间的推移 人们开始使用 JSON 格式来存储更复杂的数据结构和数据 如果您需要将
  • 国人自研开源项目,一款简单易用的 GitLab 替代品

    公众号关注 GitHubDaily 设为 星标 每天带你逛 GitHub 今天跟大家介绍一个国人自研项目 可用做 GitLab 替代品 PS 本文来自作者本人投稿 OneDev 是一个开源的一体化的 DevOps 平台 目前项目在 GitH
  • 机器学习之网格搜索技术,如何在Auto-sklearn中应用网格搜索技术

    文章目录 一 机器学习中的网格搜索技术是怎么回事 二 通俗解释 三 在一般情况下使用网格搜索技术 四 GridSearchCV网格搜索技术的原理 五 如何在Auto sklearn中使用网格搜索技术 1 Auto sklearn实际用应用中
  • python3 爬取今日头条文章(巧妙避开as,cp,_signature)

    使用环境 python3 scrapy win10 爬取思路 一 关于as cp的生成与 signature的想法 对于今日头条的爬虫 网上搜索出来的文章大多是基于崔庆才 通过搜索爬取美女街拍的方案 怎么说呢 类似这样的虽说是个巧办法 但是