百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

聊聊在工作中的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-GorgonX-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垃圾回收算法的两个优化标的:吞吐量和停顿时长,并提到这两个优化目标是有冲突的。那么有没有可能提高吞吐量而不影响停顿时长,甚至缩短停顿时长呢?答案是有可能的,提高...