聊聊在工作中的python爬虫
csdh11 2025-01-07 11:57 4 浏览
最近做得爬虫相关的work较多、就此来聊聊关于python爬虫吧!爬虫一般分为垂直爬虫和通用爬虫。
通用爬虫:比如我们常见的爬取新闻网站、各种论坛帖子、财经类信息等都是属于通用爬虫。
此类爬虫的特点是量大、简单,有规律可循。技术难点在于怎么样优雅得去适配需要提取的内容,以及翻页的逻辑。因为你不可能每一个详情页都去写一个匹配规则。
所以对于通用爬虫,我们更注重于它的框架层面上的东西。至于框架的考虑,爬虫调度逻辑。去重、翻页、解析、存储、失败重试、代理ip、数据清洗等。比较好用的框架我是推荐scrapy<Scrapy 2.6 documentation Scrapy 2.6.1 documentation>。它适合高并发,而且功能多,也支持自己扩展功能等。是一个可以快速上手的,功能全面的框架!
至于垂直爬虫:
一般特点是一个应用一个爬虫,其中应用指的是app、一个网站等!难点在于与反爬虫做斗争,要破解其中的加密参数以及风控点。
博主曾经做过简单的,也有加密比较复杂的,这里就举例说明比较难的吧。国内比较难的如淘宝、抖音、快手、小红书、大众点评等。其中抖音难点在于它的加密参数有很多,不仅如此还有防抓包,你用传统的xposed方式无法绕过。最新版, 需要使用frida hook的方式,去hook到网络关键点,才能继续抓包!无法抓包也就意味着后续工作无法进行。
当我们获取到想要的流量包以后,你又会发现X-Gorgon 、X-Khronos 、X-Tyhon 、x-tt-token等加密参数接踵而至。这些加密参数都是放在So层的,你得逆向app然后找到关键代码,进行hook,这不是Java 层得hook,所以你得看懂一些c代码或汇编语言,各种指令集。因为它得逻辑都是存放在这里,所以对你得基本工要求比较高。app逆向推荐jeb或者jadx这样的工具。
接下来有两种思路,对于需要破解的参数,你需要手动实现加密逻辑,这种显然不现实,而且工作量巨大。这里采用frida rpc 远程调用的方式。直接利用app自身的加密函数,进行远程调用。每次请求时得到加密参数即可,然后爬虫脚本携带上就可以获取自己想要的数据了。
这里面还有一点比较难,就是数据量大了,抖音会封你设备。这是它的风控点,我们就需要去注册很多个合法设备id。所以怎么得到合法的设备id又是一大难点,下期再提供思路。
相关推荐
- JNDI注入详解
-
JNDI简介JNDI是java命名与目录接口(javaNamingandDirectoryInterface),在J2EE规范中是重要的规范之一。通过调用JNDI的API应用程序可以定位资源和...
- Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0
-
本期Java近期新闻综述内容涉及JDK19、SpringBoot、SpringCVEs、ApacheTomcat点版本、QuarkusToolsforVisualStudio...
- 2023年200多道Java基础面试题
-
最近有很多人后台问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能...
- 完全零基础入门Fastjson系列漏洞
-
一、前置知识1.fastjson怎么用?fastjson是啥百度就有,看了之后不熟悉的人还是会一脸懵逼,我们可以通过以下这个小例子来快速学会使用...
- 解密阿里线上问题诊断工具Arthas和jvm-sandbox
-
大纲目录这篇文章是之前学习Arthas和jvm-sandbox的一些心得和总结,希望能帮助到大家。本文字较多,可以根据目录进行对应的阅读。背景:现在的问题所在?Arthas:Arthas能帮助你干什...
- Java 服务 Docker 容器化最佳实践
-
一、概述当我们在容器中运行Java应用程序时,可能希望对其进行调整参数以充分利用资源。...
- “堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践
-
作者:京东零售王江波说明:部分素材来源于网络,数据分析全为真实数据。一、问题背景自建的两套工具,运行一段时间后均出现内存占用高触发报警,频繁younggc且效果不佳。曾经尝试多次解决,因各种原...
- log4j2 JNDI注入分析笔记
-
前言ApacheLog4j2是一款优秀的Java日志框架,最近爆出了一个jndi注入的漏洞,影响面非常广,各大厂商都被波及。Log4j2作为日志记录的第三方库,被广泛得到使用,这次主要分享一下,最近...
- Linux-常用操作命令介绍
-
1.帮助命令1.1help命令...
- 基于容器的Java内存参数解析
-
在基于物理的服务器(此处主要与容器平台进行区分,故此描述)上运行Java应用程序时,我们通常会使用Java虚拟机参数"-Xms、-Xmx"来指定Java堆内存的初始值和最大值。如果要将...
- 用于处理 PDF 文档的开放源码 Java 工具
-
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...
- Log4j 严重漏洞修最新修复方案参考
-
CVE-2021-44228,原理上是log4j-core代码中的JNDI注入漏洞。这个漏洞可以直接导致服务器被入侵,而且由于“日志”场景的特性,攻击数据可以多层传导,甚至可以威胁到纯内网的服...
- JVM性能监控工具
-
生产环境慎用的命令JDK中带有了一堆的工具是可以用来查看运行状况,排查问题的,但对于这些工具还是要比较清楚执行后会发生什么,否则有可能会因为执行了一个命令就导致严重故障,重点讲下影响比较大的jmap。...
- 一招教你在linux服务器配置Jenkins持续集成神器
-
01配置插件...
- 谈JVM xmx, xms等内存相关参数合理性设置
-
作者:京东零售刘乐上一篇文章说到JVM垃圾回收算法的两个优化标的:吞吐量和停顿时长,并提到这两个优化目标是有冲突的。那么有没有可能提高吞吐量而不影响停顿时长,甚至缩短停顿时长呢?答案是有可能的,提高...
- 一周热门
-
-
一文读懂关于MySQL Datetime字段允许插入0000-00-00无效日期
-
MySQL数据库关于表的一系列操作 mysql 表操作
-
IDC机房服务器托管可提供的服务
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一款全能的看图软件,速度快、功能强、免费用
-
深度测评:Pixave 和图片管理之间的距离(二)
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
Serv-u 提权
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
详解PostgreSQL 如何获取当前日期时间
-
- 最近发表
- 标签列表
-
- huaweiupdateextractor (27)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- jemeter官网 (31)
- parsevideo (33)
- 个人网站源码 (37)
- exe4j_java_home (30)
- centos7.4下载 (33)
- xlsx.full.min.js下载 (32)
- 深度学习 pdf (28)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- usb2.0-serial驱动下载 (30)
- vs2010官网 (31)
- python核心编程第四版pdf (32)
- jdk1.8.0_191下载 (33)