当前位置: 首页 > news >正文

爬虫技巧汇总

 

一、UA大列表

USER_AGENT_LIST 是一个包含多个用户代理字符串的列表,用于模拟不同浏览器和设备的请求。以下是一些常见的用户代理字符串:

USER_AGENT_LIST = ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Hot Lingo 2.0)','Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3451.0 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:57.0) Gecko/20100101 Firefox/57.0','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36','Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.70 Safari/537.36','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; MS-RTC LM 8; InfoPath.2; Tablet PC 2.0)','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 TheWorld 7','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.61','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MATP; InfoPath.2; .NET4.0C; CIBA; Maxthon 2.0)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1','Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; Touch; MASMJS)','Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Hot Lingo 2.0)','Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3451.0 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:57.0) Gecko/20100101 Firefox/57.0','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36','Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.70 Safari/537.36','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; MS-RTC LM 8; InfoPath.2; Tablet PC 2.0)','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 TheWorld 7','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.61','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MATP; InfoPath.2; .NET4.0C; CIBA; Maxthon 2.0)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1','Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; Touch; MASMJS)','Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4093.3 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko; compatible; Swurl) Chrome/77.0.3865.120 Safari/537.36','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36','Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Goanna/4.7 Firefox/68.0 PaleMoon/28.16.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4086.0 Safari/537.36','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:75.0) Gecko/20100101 Firefox/75.0','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/91.0.146 Chrome/85.0.4183.146 Safari/537.36','Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 VivoBrowser/8.4.72.0 Chrome/62.0.3202.84','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.60','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:83.0) Gecko/20100101 Firefox/83.0','Mozilla/5.0 (X11; CrOS x86_64 13505.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:68.0) Gecko/20100101 Firefox/68.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36',]

二、反爬解决方案

  1. 随机替换UA
    通过随机选择UA字符串来模拟不同用户请求,避免被网站识别为爬虫。

    import random
    ua = random.choice(USER_AGENT_LIST)
    headers = {'User-Agent': ua}
  2. 随机延时
    在请求之间添加随机延时,模拟人类操作,避免频繁请求被封锁。

    import random
    import time
    time.sleep(random.randint(3, 5))
  3. 随机代理IP
    使用代理IP池来隐藏真实IP地址,避免IP被封禁。推荐使用快代理等代理服务。

    proxies = {'http': 'http://ip:port','https': 'https://ip:port',
    }
    requests.get(url, proxies=proxies)
  4. Selenium防检测方法
    使用Selenium时,可以通过以下方法绕过检测:

    • 方法一:禁用自动化标志。

      from selenium.webdriver.chrome.options import Options
      options = Options()
      options.add_experimental_option("excludeSwitches", ["enable-automation"])
      driver = webdriver.Chrome(options=options)
    • 方法二:通过CDP命令隐藏WebDriver属性。

      driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
      })

三、Scrapy日志保存

Scrapy的日志可以通过以下方式进行配置:

  1. 终端日志显示控制
    settings.py中设置日志级别,控制终端输出的日志信息。

    LOG_LEVEL = 'WARNING'  # 只显示警告及以上级别的日志
  2. 日志文件输出
    将日志保存到文件中,便于后续分析。

    import os
    import datetimeos_path = os.getcwd() + '/log/'
    if not os.path.exists(os_path):os.mkdir(os_path)to_day = datetime.datetime.now()
    log_file_path = f'log/scrapy_{to_day.year}_{to_day.month}_{to_day.day}.log'
    LOG_FILE = log_file_path

四、逆向方法

逆向工程是爬虫中常用的技术,尤其是面对复杂的反爬机制时。常见的逆向方法包括:

  • JavaScript逆向:通过分析网页的JavaScript代码,找到数据加载的逻辑。

  • API接口分析:直接调用网站的后端API接口获取数据。

  • 加密算法破解:分析并破解网站使用的加密算法,如AES、RSA等。

五、Scrapy中Cookie值

在Scrapy中,可以通过以下方式处理Cookie:

  1. 禁用Cookie
    settings.py中禁用Cookie。

    COOKIES_ENABLED = False
  2. 手动设置Cookie
    在请求头中手动添加Cookie。

    DEFAULT_REQUEST_HEADERS = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'en','cookie': 'your_cookie_here',
    }
  3. 动态生成Cookie
    在爬虫中动态生成并传递Cookie。

    cookies = {'key': 'value'}
    yield scrapy.Request(url, cookies=cookies)

六、如何挂外网代理

  1. SOCKS代理
    使用SOCKS代理进行网络请求。

    import socket
    import sockssocks.set_default_proxy(socks.SOCKS5, 'ip', port)
    socket.socket = socks.socksocket
  2. HTTP代理
    使用HTTP代理进行网络请求。

    proxy = {'http': 'http://ip:port','https': 'https://ip:port',
    }
    requests.get(url, proxies=proxy)

七、解析方法

常见的网页解析方法包括:

  • BeautifulSoup4:适合解析HTML文档,语法简单易用。

  • XPath:强大的路径表达式语言,适合复杂的HTML结构。

  • PyQuery:类似于jQuery的语法,适合熟悉jQuery的开发者。

  • 正则表达式:适合处理简单的文本匹配和提取。

对于JSON数据,可以使用jsonpath进行解析。

八、其他技巧

  1. 分布式爬虫
    使用Scrapy-Redis等工具实现分布式爬虫,提高爬取效率。

  2. 数据存储
    将爬取的数据存储到数据库(如MySQL、MongoDB)或文件中(如CSV、JSON)。

  3. 反反爬虫策略

    • 使用Headless浏览器(如Puppeteer)模拟真实用户操作。

    • 定期更换IP和UA,避免被封禁。

    • 使用验证码识别服务(如打码平台)处理验证码。

  4. 异步爬虫
    使用aiohttphttpx等异步HTTP库,提高爬取速度。

九、总结

爬虫技术涉及多个方面,包括反爬策略、数据解析、日志管理、代理使用等。掌握这些技巧可以帮助你更高效地爬取数据,同时避免被目标网站封禁。如果有其他问题或需要进一步的帮助,欢迎在评论区留言或私信。

http://www.lryc.cn/news/534551.html

相关文章:

  • 基于UVM搭验证环境
  • 【JavaWeb10】服务器渲染技术 --- JSP
  • 【Hadoop】大数据权限管理工具Ranger2.1.0编译
  • 微软AI研究团队推出LLaVA-Rad:轻量级开源基础模型,助力先进临床放射学报告生成
  • 06排序 + 查找(D2_查找(D1_基础学习))
  • 网站快速收录的秘诀:关键词布局与优化
  • AI大语言模型
  • 03-DevOps-安装并初始化Gitlab
  • Mac重复文件,一键查找并清理的工具
  • Unity Mesh 切割算法详解
  • ASUS/华硕天选1 FA506I 原厂Win10 专业版系统 工厂文件 带ASUS Recovery恢复 教程
  • 【计算机中级职称 信息安全工程师 备考】密码学知识,经典题目
  • 期权帮|初识股指期货:股指期货的交割结算价是怎么来的?
  • 伺服使能的含义解析
  • 数据集成实例分享:金蝶云星空对接旺店通实现库存管理自动化
  • Android 常用设计模式和实例
  • 模拟(典型算法思想)—— OJ例题算法解析思路
  • Nginx配置 ngx_http_proxy_connect_module 模块及安装
  • 项目质量管理体系及保证措施
  • php 实现 deepSeek聊天对话
  • 【Unity】性能优化:UI的合批 图集和优化
  • ASP.NET Core SignalR案例:导入英汉词典
  • C++ 通过XML读取参数
  • WiFi配网流程—SmartConfig 配网流程
  • 哪些情况会导致JVM内存泄露
  • 蓝桥杯K倍区间(前缀和与差分,取模化简)
  • 2025上半年还可以参加那些数学建模竞赛?
  • 网易日常实习一面面经
  • Excel 笔记
  • Python的