Ai
1 Star 0 Fork 1

Jxz/flask-project

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
seleniumProxy.py 2.48 KB
一键复制 编辑 原始数据 按行查看 历史
Jxz 提交于 2025-03-13 13:12 +08:00 . fix: 绕过反爬的driver undetected_chromedriver
import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from utils.xpath_util import escape_string_for_xpath
# 当前文件所在的文件夹路径
current_path = os.getcwd()
# chrome浏览器路径
chrome_location = os.path.join(current_path, 'chrome-win')
# chrome.exe完整路径
browser_location = os.path.join(chrome_location, 'chrome.exe')
# chromedriver.exe的完整路径
driver_location = os.path.join(chrome_location, 'chromedriver.exe')
# 创建一个Servic对象,传入ChromeDriver的路径
service = Service(driver_location)
# 创建Chrome选项
options = Options()
# options.add_argument("--headless") # 无头模式(无界面)
# 禁用图片
# options.add_argument('blink-settings=imagesEnabled=false')
# option设置,传入Chrome浏览器的路径(chrome.exe完整路径)
options.binary_location = browser_location
# 不显示 Chrom正受到自动测试软件控制
options.add_experimental_option("excludeSwitches", ['enable-automation'])
# ip_port = '111.222.197.66:3328' # 这里是你使用的代理ip和端口
# options.add_argument(f"--proxy-server={ip_port}") # options.add_argument("--proxy-server=111.222.197.66:3328")
# 关闭webrtc
preferences = {
"webrtc.ip_handling_policy": "disable_non_proxied_udp",
"webrtc.multiple_routes_enabled": False,
"webrtc.nonproxied_udp_enabled": False
}
options.add_experimental_option("prefs", preferences)
options.add_argument('--start-maximized')
driver = webdriver.Chrome(service=service, options=options)
# driver.set_page_load_timeout(15) # 设置页面加载超时时间为15秒
# driver.set_script_timeout(15) # 设置js加载超时时间为15秒
# url = "https://httpbin.org/ip"
url = "http://httpbin.org/ip"
try:
# url = "https://www.gldzb.com/#/home?redirect=%2FprojectCost%2Findex&gid=7270474548041416941"
url="https://ec.chng.com.cn/ecmall/announcement/announcementDetail.do?announcementId=12726847"
driver.get(url)
title = '我的标题有"双引号"'
driver.save_screenshot('1.png')
# title = "我的标题有'单引号'"
# title = """我的标题有'单引号'和"双引号""" #这里使用了concat方法 用于将多个字符串连接在一起
title = escape_string_for_xpath(title)
title_xpath = f'//*[contains(.,{title})]'
driver.find_elements(By.XPATH, title_xpath)
print(driver.page_source)
except Exception as e:
print(e)
finally:
driver.quit()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/jxzcode_admin/flask-project.git
git@gitee.com:jxzcode_admin/flask-project.git
jxzcode_admin
flask-project
flask-project
master

搜索帮助