在linux上面用drissionpage自动化遇到反爬?

发布于:2024-07-29 ⋅ 阅读:(147) ⋅ 点赞:(0)

一、反爬内容

1、案例1
  • 反爬的响应文本返回如下:
  • 爬虫均能精准识别,测试链接:https://ziyuan.baidu.com/crawltools/index)
  • 非正常爬虫访问时:返回的压缩报文内容无法直接识别,可一定程度上保护站点信息安全;(伪装成爬虫的恶意请求、非爬虫服务器的SEO检测工具等)
  • 注:用户浏览器和爬虫看到的页面完全一致,如果您有顾虑,也可以进入网站后台=>网站管理=>站点信息=>关闭网站加速功能
    在这里插入图片描述
  • 用requests请求也是上面的响应内容返回
    from curl_cffi import requests as curl_requests
    
    res = curl_requests.get("http://hanxbio.com/cpgx",  timeout=30, impersonate="chrome124")
    print(res.text)
    
  • 但是linux机器上自动化也是,难道自动化被反爬了?(windows上面是正常的)
    from DrissionPage import ChromiumPage, ChromiumOptions, WebPage
    co = ChromiumOptions().set_paths(browser_path="/data/code/spiderprj/src/crawlsall/DrugMonitor/cancel_fixed")
    co.headless(True)  # 设置无头加载  无头模式是一种在浏览器没有界面的情况下运行的模式,它可以提高浏览器的性能和加载速
    # co.incognito(True)  # 无痕隐身模式打开的话,不会记住你的网站账号密码的
    co.set_argument('--no-sandbox')  # 禁用沙箱 禁用沙箱可以避免浏览器在加载页面时进行安全检查,从而提高加载速度 默认情况下,所有Chrome 用户都启用了隐私沙盒选项  https://zhuanlan.zhihu.com/p/475639754
    co.set_argument("--disable-gpu")  # 禁用GPU加速可以避免浏览器在加载页面时使用过多的计算资源,从而提高加载速度
    co.set_user_agent(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36')  # 设置ua
    # co.set_proxy('http://127.0.0.1:10109')
    co.set_local_port(9211)
    page = ChromiumPage(co)
    page.get("http://hanxbio.com/cpgx")
    print(page.html)
    print(page.ele('x://div[@id="txt_con_243_39"]//table').html)
    
2、案例2
  • This page isn’t working , 同样是代理问题
    在这里插入图片描述
    在这里插入图片描述

二、后来发现的问题解决

  • 自动化问题解决方案:linux机器我设置的那个代理有问题,挂了co.set_proxy('http://127.0.0.1:10109')代理则会返回如下内容,去掉那个代理ip则正常返回
    在这里插入图片描述
  • requests解决方案,找到有数据的具体的接口api请求
    from curl_cffi import requests as curl_requests
    
    res = curl_requests.get("https://nwzimg.wezhan.net/pubsf/18028/18028944/cdn-static-pages/pages/pc/170828_zh-cn.html.Body.js?version=20240723111847",  timeout=30, impersonate="chrome124")
    print(res.text)
    

网站公告

今日签到

点亮在社区的每一天
去签到