首页 > 编程语言 >程序员怎么学爬虫JS逆向

程序员怎么学爬虫JS逆向

时间:2023-05-17 09:36:30浏览次数:34  
标签:逆向 Javascript driver 爬虫 JS 程序员 HTML

爬虫JS逆向(也称为前端逆向、JS破解等)是指通过分析JavaScript代码,破解前端加密算法或构造相应的模拟请求,从而有效地模拟人类用户完整的操作行为实现数据爬取。

 

 

以下是一些常见的爬虫JS逆向技术:

1、自动识别Javascript解码器

如果前端使用了Javascript编码来隐藏有价值的数据, 爬虫需要找出隐藏的Javascript代码,并将其还原成人类可读的格式以便获取被隐藏的内容,例如使用BeautifulSoup针对HTML源文件进行修改和提取,或通过Selenium等工具启动浏览器进行模拟人类操作。

2、逆向Javascript混淆和压缩算法

如果Javascript代码经过混淆和压缩会使得阅读和理解变得困难,所以需要首先通过格式化源代码并解压缩,让代码保持易于阅读的状态,再通过查看源代码结合打日志的方式去分离出每一步请求过程中应该提交的参数。

3、识别HTML元素和CSS选择器

一些网页可能会使用Javascript代码动态创建网页元素或者直接呈现数据,因此在解析网页时需要识别相关的HTML元素和CSS选择器,并使用相关技术和库来定位元素和提取信息。

需要注意的是,JS逆向技术一直在发展,并且破解加密和签名技术也在不断增强。此外,必须遵守道德规范和法律法规,始终以合法和负责任的方式编写爬虫程序。

直接上代码:

以下是一个使用Python爬虫和Selenium模拟浏览器进行JS逆向爬取数据的简单示例代码:

from selenium import webdriver

# 使用Chrome Headless模式启动Selenium浏览器
options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)

# 构造网址并访问
url = 'https://www.example.com/'
driver.get(url)

# 等待网页加载完成
driver.implicitly_wait(5)

# 通过JS代码获取文本内容
element_text = driver.execute_script('return document.getElementById("element_id").innerText;')
print(element_text)

# 点击按钮生成更多数据
button = driver.find_element_by_class_name('load-more-button')
button.click()

# 获取新加载的数据
new_data = driver.execute_script('return get_new_data();')
print(new_data)

# 关闭浏览器并退出Selenium
driver.quit()

以上这个示例演示了如何通过Selenium启动Chrome Headless,访问具有模拟功能的网站,并使用JavaScript操作元素等常见方法爬取数据。

需要注意,使用爬虫JS逆向技术存在侵犯隐私、破坏网络安全等问题,因此必须确保自己的爬取行为合法有效,遵守相关法律条款。另外,不同的网站可能会采用不同的反爬虫机制,选择质量高且性能良好的JS逆向爬虫技术,才能有效地绕过这些机制获取网站数据。

JS逆向爬虫新手学习难么

学习JS逆向爬虫需要具备一些基本的编程能力和计算机知识,包括但不限于以下方面:

1、HTML和CSS

了解基本的HTML元素、标签、属性和样式,以及如何使用CSS选择器来定位页面元素。

2、JavaScript编程语言

熟悉JavaScript语言的基本语法和数据类型,以及常见的DOM操作方法、Ajax请求和Canvas绘图等技术。

3、Python编程语言

掌握Python基础语法和流程控制、面向对象编程、网络编程、多线程编程等知识,是爬虫编写中非常重要的部分。

4、Web开发

了解Web开发的基本原理和技术,例如HTTP协议、会话管理、Web服务等。

5、程序设计思想

掌握程序设计的基本思想,包括模块化、抽象化、数据结构和算法。

学习JS逆向爬虫涉及多个领域,需要学习并了解各种技能,并将它们结合起来解决现实问题。对于新手来说,深入研究和理解这些技术并不总是容易的,可能需要找到一个逐步引入不同主题的合适教程,参考别人编写的成果,秉持良好的学习习惯和专注力,勤奋练习才能有效地掌握相关技能。

标签:逆向,Javascript,driver,爬虫,JS,程序员,HTML
From: https://www.cnblogs.com/q-q56731526/p/17407542.html

相关文章

  • 十步学习法,赋能程序员
    引言最近看了《软技能:代码之外的生存指南》这本书,对其中的"十步学习法"。有一些感触,所以将其中的内容记录并总结了下来,分享给大家。程序员在学习成长的过程中,除了关注技术的发展。同时也应该要学习一些软技能,用于提升自己的认知及格局。十步学习法01了解全局了解全局就......
  • 爬虫爬取在线小说阅读网站详解
    前言环境:python安装、requests安装、BeautifulSoup安装爬取目标:笔趣看网站的《校花之贴身高手》,以下是第一章链接https://www.biqukan.com/11_11499/4260511.html开始爬取1.打开链接,打开检查窗口通过审查Elements,能定位到小说的文本内容在<divid="content"class="showtxt">......
  • SpringBoot添加JSP支持
    ①创建一个新的MavenWeb项目,命名为SpringBoot_jsptest建成之后会如上图所示,报错是因为没有加入jsp的支持。②按照Maven规范,在src/main/下新建一个名为resource的文件夹,并在下面新建static以及templates文件夹修改pom.xml文件:      1、在url标签后面加入parent元素: <!--......
  • 爬虫之IP代理
        在爬虫,爬数据的时候,很容易出现IP锁定,403,验证码等情况,一般出现此类情况的时候,就会用IP代理,来实现,大量的频繁更换IP来实现数据的频繁爬取和并发爬取。   现在的方式是增加一个这个的一个服务,一直跑几个免费的IP平台,大致也是这个流程以上图片来源于网络.其中代理的......
  • 程序员岗位介绍,我爬取了拉勾网所有技术岗位工资数据,算法工程师平均薪资高达2W
    点击观看视频↓↓↓程序员岗位介绍,我爬取了拉勾网所有技术岗位工资数据,算法工程师平均薪资高达2W文字版大家好,我是宁一,一个多月没有更新视频了,这一个多月我都在准备一个店铺商城的云开发小程序项目,项目刚刚开发完,还需要一段时间来写成课程,怕大家把我忘了,先来更新一篇文章~最近有......
  • JSON
        案例:  ......
  • 2023年5月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojso
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts等geojson数据下载地址:https://geojson.hxkj.vip该项目github地址:https://github.com/TangSY/echarts-m......
  • 关于 rxjs 编程中的 take(1) 操作
    对rxjs中的Observable使用take(1)操作符不会引起副作用。take(1)只是取Observable中第一个发出的值,并且会立即完成。它会使得Observable中只有一个值被发出并且完成,而不会影响其他代码。然而,如果Observable中包含了副作用操作,例如调用了HTTP请求或者改变了共享状......
  • vue2 + fabric.js 实现撤销、恢复效果
    全部代码<template><div><canvasid="canvas"width="400"height="400"style="border:1px"></canvas><button:disabled="!canUndo"@click="historyState(stateIndex-1)......
  • JS和Document
    对象1.newvarobj=newObject();2.函数声明对象functionHuman(){};3.varobj={};大括号就是对象varobj={};obj.name='张三';obj.age=20;obj.say=function(){};4.varobj={};大括号内放入属性用:varobj={ name:'张三', age:20, sex:0, run:functi......