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 生成就挺麻烦的> <

谷歌图片验证,难搞 “_”

商标网那种

回到顶部