常见反爬机制及其破解方法

常见反爬机制及其破解方法

常见反爬机制及其破解方式:
封禁IP,使用cookie等前面文章已经讲过

现在主要将下面的:

​ ~ 验证码
​ —> 文字验证码 —> OCR(光学文字识别)—> 接口 / easyocr
​ 程序自己解决不了的问题就可以考虑使用三方接口(付费/免费)
​ —> 行为验证码 —> 超级鹰
​ ~ 手机号+短信验证码
​ —> 接码平台
​ ~ 动态内容
​ —> JavaScript逆向 —> 找到提供数据的API接口
​ —> 手机抓接口 —> 抓包工具(Charles / Fiddler)
​ —> Selenium直接模拟浏览器操作获取动态内容
​ ~ find_element_by_xxx / find_elements_by_xxx
​ ~ page_source —> 获取包含动态内容的网页源代码
​ —> JavaScript加密和混淆技术 —> 读懂JavaScript是反反爬的前提
​ ~ 字体反爬 / 内容来自于抠图
​ —> 例子

bytes —> 不变字节串 —> 二进制 —> BytesIO
str —> 不变字符串 —> 可阅读的字符 —> StringIO

一、调用三方API接口数据(天行数据)

import requests

for page in range(1, 6):
    response = requests.get(
        'http://api.tianapi.com/topnews/index',
        params={
   
            'key': 'd5eace66dccd771e36767ce3563efa09',
            'page': page,
            'num': 20,
            'word': '华为',
            'src': '人民日报'
        }
    )
    result = response.json()
    for news in result['newslist']:
        print(news['title'])
        print(news['url'])

二、OCR(光学文字识别)库

python 自带的easyocr库

import easyocr
reader = easyocr.Reader(['ch_sim', 'en'], gpu=False)
print(reader.readtext('./files/captcha.jpg', detail=0))

例子:阿里云邮箱自动登陆

import io

import easyocr

from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()
browser.set_window_size(1280, 960)
browser.get('http://mail.1000phone.com/')
# 隐式等待(下面的方法在工作时如果取不到就等10秒)
browser.implicitly_wait(10)
# 显式等待
wait = WebDriverWait(browser, 10)
wait.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, '.login_panel_iframe')))
iframe1 = browser.find_element_by_css_selector('.login_panel_iframe')
# 记录iframe1的位置(相对位置)
x1, y1 = iframe1.location['x'], iframe1.location['y']
# Chrome对象的switch_to属性的frame方法,可以从页面切换到iframe中
browser.switch_to.frame(iframe1)
iframe2 = browser.find_element_by_css_selector
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Boss直聘网的反爬机制主要包括以下措施: 1. 验证码:Boss直聘网在登陆、搜索、访问等操作时会不定期地弹出验证码,要求用户输入正确的验证码才能继续操作。 2. IP限制:Boss直聘网会监测用户请求的IP地址并对频繁请求的IP进行限制,以防止恶意爬虫的攻击。 3. User-Agent限制:Boss直聘网会对请求头中的User-Agent进行检测,如果发现请求头中的User-Agent不是浏览器的标准请求头,就会判定为爬虫并进行限制。 4. Cookie限制:Boss直聘网会对Cookie进行检测,如果发现Cookie异常或者Cookie中的信息与用户行为不符,就会判定为爬虫并进行限制。 针对这些反爬机制,以下是一些应对方法: 1. 使用代理IP:通过使用代理IP可以避免被Boss直聘网监测到用户的真实IP地址,并避免IP限制的问题。 2. 伪装User-Agent:使用浏览器的标准请求头或者随机生成请求头来伪装成浏览器的请求,以避免User-Agent限制的问题。 3. 自动识别验证码:使用OCR技术自动识别验证码,提高爬虫程序的自动化程度,避免验证码的干扰。 4. 定期清理Cookie:定期清理Cookie,避免Cookie异常或者Cookie中的信息与用户行为不符,从而避免被判定为爬虫并进行限制。 需要注意的是,爬虫行为可能会违反Boss直聘网的用户协议,因此在使用爬虫程序时,应遵守相关规定,避免侵犯他人权益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值