我正在尝试构建一个自动化工具来验证 Web 分析标签的实现。我正在使用 Python 3 + Selenium 和 PhantomJS 来自动浏览和收集正在触发的标签。我正在使用下面的代码来抓取网页并获取包含所有请求的 har 日志,类似于 Google Chrome 中的网络选项卡所做的。问题是,对于某些网站,它运行良好,我可以看到 google-analytics.com/collect? 来电。对于其他人,我可以在 Google Chrome 网络选项卡上看到它,但我的爬虫不会注册它。我确定我正在等待页面加载,但它仍然无法正常工作。
我在其中找到分析/收集的示例页面?在 har 日志中调用: https ://www.stackoverflow.com
我找不到分析/收集的页面示例?调用 har 日志,但在 chrome 网络选项卡上找到它。 https://www.nike.com.br
实例化 webdriver 的代码
def get_driver():
desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
service_args = ['--ignore-ssl-errors=yes']
desired_capabilities['phantomjs.page.customHeaders.User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
driver = webdriver.PhantomJS(service_args=service_args,
desired_capabilities=desired_capabilities)
driver.set_page_load_timeout(60)
return driver
解析har日志的代码
def get_requests(url):
driver = get_driver()
try:
driver.get(url)
print(j)
except Exception as e:
print(e)
return None
log = driver.get_log('har')
log = json.loads(log[0]['message'])
log_list = log['log']['entries']
return log_list