超详细Python教程——常见反爬策略及应对方案

常见反爬策略及应对方案

  1. 构造合理的HTTP请求头。

    • Accept

    • User-Agent

    • Referer

    • Accept-Encoding

    • Accept-Language

  2. 检查网站生成的Cookie。

    • 有用的插件:EditThisCookie
    • 如何处理脚本动态生成的Cookie
  3. 抓取动态内容。

    • Selenium + WebDriver
    • Chrome / Firefox - Driver
  4. 限制爬取的速度。

  5. 处理表单中的隐藏域。

    • 在读取到隐藏域之前不要提交表单
    • 用RoboBrowser这样的工具辅助提交表单
  6. 处理表单中的验证码。

    • OCR(Tesseract) - 商业项目一般不考虑

    • 专业识别平台 - 超级鹰 / 云打码

      from hashlib import md5
      
      class ChaoClient(object):
      
          def __init__(self, username, password, soft_id):
              self.username = username
              password =  password.encode('utf-8')
              self.password = md5(password).hexdigest()
              self.soft_id = soft_id
              self.base_params = {
                  'user': self.username,
                  'pass2': self.password,
                  'softid': self.soft_id,
              }
              self.headers = {
                  'Connection': 'Keep-Alive',
                  'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
              }
      
          def post_pic(self, im, codetype):
              params = {
                  'codetype': codetype,
              }
              params.update(self.base_params)
              files = {'userfile': ('captcha.jpg', im)}
              r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
              return r.json()
      
      
      if __name__ == '__main__':
          client = ChaoClient('用户名', '密码', '软件ID')
          with open('captcha.jpg', 'rb') as file:                                                
              print(client.post_pic(file, 1902))                                          
      
  7. 绕开“陷阱”。

    • 网页上有诱使爬虫爬取的爬取的隐藏链接(陷阱或蜜罐)
    • 通过Selenium+WebDriver+Chrome判断链接是否可见或在可视区域
  8. 隐藏身份。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月流霜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值