我有以下代码
import sys
from os import path
import os
import numpy as np
import pandas as pd
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class DDDDDD(object):
def __init__(self, date=None, path_to_save=None, chomedriver_exe_path=None, pred=True):
self.pred = pred
if chomedriver_exe_path is None:
home = os.path.expanduser('~')
self.chomedriver_exe_path = home + '/Downloads/chromedriver.exe'
else:
self.chomedriver_exe_path = chomedriver_exe_path
self.driver = None
def setup_driver(self):
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36'
chrome_options = Options()
chrome_options.add_argument("headless") # --headless
chrome_options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36')
chrome_options.add_argument("--window-size=1920x1080")
chrome_driver = self.chomedriver_exe_path
self.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
return self.driver
ddddd = DDDDDD()
ddddd.setup_driver()
ddddd.driver.get("http://kluge.in-chemnitz.de/tools/browser.php")
ddddd.driver.save_screenshot('browser.png')
我试图覆盖用户代理,所以这个特定的网站我试图访问银行业务(自动化个人交易数据下载)。我尝试了以下解决方案。
似乎没有工作。我使用的测试网站的屏幕截图包含无头字。有人可以帮我为Chrome浏览器做这个吗?其他浏览器解决方案绝对可以接受,但我更喜欢Chrome浏览器。
这适用于Java。您可以尝试使用Python的相同逻辑。我认为Python有browser.execute_script。
使用的扩展程序是Chrome ModHeader扩展程序。
String userAgent = PropertyReader.readItem("USER-AGENT");
String xmsisdn = PropertyReader.readItem("X-MSISDN");
String xUPSUBNO = PropertyReader.readItem("xUPSUBNO");
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File(PropertyReader.readItem("CHROMEEXT")));
options.addArguments("--start-maximized");
options.addArguments("disable-infobars");
System.setProperty("webdriver.chrome.driver","Path\\chromedriver.exe");
//Launch the Browser
webDriver = new ChromeDriver(options);
// set the context on the extension so the localStorage can be accessed
webDriver.get("chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/icon.png");
// setup ModHeader with name and value
JavascriptExecutor js;
((JavascriptExecutor)webDriver).executeScript(
"localStorage.setItem('profiles', JSON.stringify([{ " +
" title: 'Selenium', hideComment: true, appendMode: '', " +
" headers: [ " +
" {enabled: true, name: 'User-Agent', value: '"+userAgent+"', comment: ''}, " +
" {enabled: true, name: 'X-UP-SUBNO', value: '"+xUPSUBNO+"', comment: ''} " +
" ], " +
" respHeaders: [], " +
" filters: [] " +
"}]));