Git Product home page Git Product logo

browser-env's Introduction

Browser-Env

Web crawlers use the real browser environment.

本项目不重复造轮子, 而是对已有的开源项目进行封装和集成, 使其适用于复杂多样的 Spider 项目需求.

依赖要求: windows 系统

Python 3.6+

selenium 3.4.0+

Chrome 浏览器应用版本 92+

本人实测: windows 10 专业版

Python 3.6.9

selenium-wire==4.6.0

undetected-chromedriver==3.0.6

selenium==3.141.0

Chrome 浏览器应用版本 92.0.4515.159

jsenv 推荐

  • 2023-04-01 更新: 更优雅的方式 异步/同步调用 nodejs 环境, 补环境

需要依赖:

安装 nodejs 环境

同时自定义 DOM 环境,需安装 jsdom 或者 canvas

npm install jsdom

npm install canvas

chrome_remote_pro 推荐

  • 2023-02-15 更新: 客户端 添加新功能 click, send, get_html 分别实现鼠标点击, 输入框输入, 获取页面元素等基础操作, 并使用 CSS 语法来定位
  • 2022-09-19 更新: 客户端不再使用 selenium 库, 基于chrome cdp协议 重写了一个客户端连接, 更少的依赖, 更高效

chrome_remote

远程 chrome 浏览器环境, 执行js脚本

原理:

chrome 可执行文件 使用启动选项 remote-debugging-port 打开 chrome 浏览器调试端口,

相当于打开一个调试服务, 客户端填写 debuggerAddress 连接, 这些 selenium 已经都有集成的了

由于是浏览器是命令行方式启动, 这和平常手动启动浏览器基本没有差别, 自然就绕过各种 webdriver 属性, 自动化工具检测

辛苦扣出来的js, 再也不用花几小时补环境, 该怎么抛弃execjs, nodejs ?

browserenv

基础的浏览器环境, 用于高度模拟 真实浏览器环境 执行js脚本

或对付 SecurityWorker, jsmvp 类型加固

wirebrowserenv

在 browserenv 基础上, wirebrowserenv 功能更加强大, 支持拦截网络请求 的浏览器环境

作用: 捕获的 HTTP 和 HTTPS 请求 拦截请求和响应 即时修改标题、参数、正文内容

wirebrowserenv_uc

对 undetected-chromedriver 的集成, 优化的 Selenium Chromedriver 补丁,

不会触发 Distill Network / Imperva / DataDome / Botprotect.io 等反僵尸服务,

自动下载驱动程序二进制文件并对其进行修补。

v8env

适用于 Python 的最小的现代嵌入式 V8 引擎 作用: 执行js脚本

报错

问题: Python 3.7以下版本 SyntaxError: future feature annotations is not defined

解决方法: 直接注释掉 # from future import annotations 即可

问题: selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:52693 from session not created: This version of ChromeDriver only supports Chrome version xxx Current browser version is 92.0.4515.159

解决方法: wirebrowserenv_uc.py 中 修改 version_main=xxx, # 注意填写自己浏览器版本 例如 version_main=92

感谢

browser-env's People

Contributors

aidencaptcha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.