Der folgende Code legt den Benutzeragenten für eine phantomJS-Instanz fest, druckt ihn aus und scrappt dann eine Website, die sie erneut ermittelt. Die Ergebnisse sind unterschiedlich. Wie kann das sein? Ich war noch nicht in der Lage, this scheinbare Lösung zu reproduzieren.Wie kommt es, dass ich zwei verschiedene Benutzeragenten gleichzeitig mit PhantomJS in Python habe?
1) Set ONE User-Agent
serviceDefaults=["--ignore-ssl-errors=yes",]
desiredDefaults={
"phantomjs.page.settings.userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"}
2) Richten Sie Treiber und Druck User-Agent
def create_phantomJS():
driver = webdriver.PhantomJS("phantomjs.exe", desired_capabilities=desiredDefaults, service_args=serviceDefaults)
phantom_exc_uri='/session/$sessionId/phantom/execute'
driver.command_executor._commands['executePhantomScript'] = ('POST', phantom_exc_uri)
initScript="""
this.onInitialized=function() {
var page=this;
if (page.navigator == page.settings.userAgent){return};
page.settings.navigator = page.settings.userAgent;
}
"""
driver.execute('executePhantomScript',{'script': initScript, 'args': []})
agent = driver.execute_script("return navigator.userAgent")
print "rawUa:", agent
return driver
3) Scrape Webseite User-Agent zu bestimmen und drucken
def use_driver(driver, URL):
website = driver.get(URL)
html = WebDriverWait(driver, 1).until(EC.presence_of_element_located((By.ID, "rawUa")))
return text
4) Ergebnisse vergleichen
driver = create_phantomJS()
text = use_driver(driver, URL)
print text
Die Ausgabe ist zwei verschiedene Benutzeragenten.
rawUa: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1
rawUa: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Wie in diesem Szenario in Python den User Agent übereinstimmen?
funktioniert wie ein Charme, ehrlich - vielen Dank – sudonym