Update Chrome for macos

This commit is contained in:
Naibo_Mac_M2 2023-07-30 03:08:54 +08:00
parent e09cae78d9
commit 8572452186
3 changed files with 52 additions and 11 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,15 +1,29 @@
import json import json
import os import os
import re import re
import subprocess
import sys import sys
import requests import requests
import platform import platform
import shutil import shutil
import zipfile import zipfile
import urllib.request import urllib.request
import winreg if sys.platform == "win32":
import winreg
import re import re
def get_processor_info():
if os.uname().sysname == 'Darwin':
processor_info = subprocess.check_output(['sysctl', '-n', 'machdep.cpu.brand_string']).strip()
processor_info = str(processor_info)
if 'Intel' in processor_info:
return 'Intel'
elif 'Apple' in processor_info:
return 'Apple'
else:
return 'Unknown'
else:
return 'This method is only implemented for macOS.'
def download_and_extract_zip(url, destination_folder): def download_and_extract_zip(url, destination_folder):
# 下载ZIP文件 # 下载ZIP文件
@ -34,6 +48,7 @@ def copy_folder(source_folder, destination_folder):
def get_chrome_version(): def get_chrome_version():
version = "115"
if sys.platform == "win32": if sys.platform == "win32":
version_re = re.compile(r"^[1-9]\d*\.\d*.\d*") version_re = re.compile(r"^[1-9]\d*\.\d*.\d*")
try: try:
@ -44,12 +59,8 @@ def get_chrome_version():
return version_re.findall(_v)[0][:3] return version_re.findall(_v)[0][:3]
except WindowsError as e: except WindowsError as e:
print("check Chrome failed:{}".format(e)) print("check Chrome failed:{}".format(e))
elif sys.platform == "linux": else:
pass return version
elif sys.platform == "darwin":
pass
return "115"
chrome_version = get_chrome_version() # 要更新的chromedriver版本 chrome_version = get_chrome_version() # 要更新的chromedriver版本
@ -58,7 +69,7 @@ print("Detected your chrome version is: ", chrome_version)
chrome_driver_url = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json" chrome_driver_url = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"
win64_chrome_path = "C:\\Program Files\\Google\\Chrome\\Application" win64_chrome_path = "C:\\Program Files\\Google\\Chrome\\Application"
win32_chrome_path = "C:\\Program Files\\Google\\Chrome\\Application" win32_chrome_path = "C:\\Program Files\\Google\\Chrome\\Application"
mac_chrome_path = "/Applications/Google Chrome.app/Contents/MacOS" mac_chrome_path = "/Applications/Google Chrome.app"
linux_chrome_path = "/opt/google/chrome" linux_chrome_path = "/opt/google/chrome"
old_driver_version = { old_driver_version = {
"100":"100.0.4896.60", "100":"100.0.4896.60",
@ -183,6 +194,35 @@ if __name__ == "__main__":
elif sys.platform == "linux" and platform.architecture()[0] == "64bit": elif sys.platform == "linux" and platform.architecture()[0] == "64bit":
pass pass
elif sys.platform == "darwin" and platform.architecture()[0] == "64bit": elif sys.platform == "darwin" and platform.architecture()[0] == "64bit":
pass processor = get_processor_info()
if processor == "Intel":
driver_arch = "mac-x64"
elif processor == "Apple":
driver_arch = "mac-arm64"
for download in driver_downloads:
if download["platform"] == driver_arch:
url = download["url"]
print("ChromeDriver will be downloaded from: ", url)
break
download_and_extract_zip(url, "./chromedrivers")
if os.path.exists("./chrome_mac64.app"):
shutil.rmtree("./chrome_mac64.app")
# copy_folder(mac_chrome_path, "./chrome_mac64.app")
subprocess.call(["cp", "-R", mac_chrome_path, "./chrome_mac64.app"])
try:
copy_file(
"./chromedrivers/chromedriver-%s/chromedriver" % driver_arch,
"./chromedriver_mac64",
)
except:
copy_file(
"./chromedrivers/chromedriver",
"./chromedriver_mac64",
)
finally:
shutil.rmtree("./chromedrivers")
os.chmod("./chromedriver_mac64", 0o755)
os.chmod("./chrome_mac64.app", 0o555)
os.chmod("./chrome_mac64.app/Contents/MacOS/Google Chrome", 0o555)
print("Done and don't forget to generate executestage EXEcutable program!") print("Done and don't forget to generate executestage EXEcutable program!")

View File

@ -1,12 +1,12 @@
{ {
"name": "EasySpider", "name": "EasySpider",
"version": "0.3.5", "version": "0.5.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "EasySpider", "name": "EasySpider",
"version": "0.3.5", "version": "0.5.0",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"crx": "^5.0.1", "crx": "^5.0.1",