Python爬虫中处理JavaScript反爬的难点有哪些,大家一起来讨论一下
Python爬虫中处理JavaScript反爬的难点有哪些,大家一起来讨论一下
5 回复
主要是模拟登录破解加密,还有就是像极验验证码之类的东西
处理JS反爬主要难在动态渲染和数据加密。核心难点就两个:一是页面内容由JS生成,直接requests拿不到数据;二是关键参数被JS加密,需要逆向分析。
对于动态渲染,直接用selenium或playwright最省事:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://example.com')
# 等JS执行完
element = driver.find_element(By.CSS_SELECTOR, '.target')
print(element.text)
driver.quit()
对于加密参数,得用PyExecJS或nodejs调用JS代码:
import execjs
# 直接执行目标网站的加密函数
js_code = """
function encrypt(data) {
// 这里是网站实际的加密逻辑
return encrypted_data;
}
"""
ctx = execjs.compile(js_code)
result = ctx.call('encrypt', 'your_data')
有些网站用WebDriver检测,得加参数绕过:
from selenium.webdriver import ChromeOptions
options = ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=options)
简单说就是:动态渲染用自动化工具,加密参数得逆向JS。
就怕碰到 ajax 相关的问题,内容要是用 js 生成就挺麻烦的> <
谷歌图片验证,难搞 “_”
商标网那种

