返回介绍

Days

公开课

番外篇

常见反爬策略及应对方案

发布于 2024-06-18 22:18:13 字数 4204 浏览 0 评论 0 收藏 0

  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) - 商业项目一般不考虑

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

      ```Python 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))                                          
 ```
  1. 绕开“陷阱”。
    • 网页上有诱使爬虫爬取的爬取的隐藏链接(陷阱或蜜罐)
    • 通过Selenium+WebDriver+Chrome判断链接是否可见或在可视区域
  2. 隐藏身份。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文