HAR 响应中没有标头
Posted
技术标签:
【中文标题】HAR 响应中没有标头【英文标题】:No headers in HAR response 【发布时间】:2015-10-19 10:28:18 【问题描述】:我解析网站'http://ok.ru'。要从发布请求中获取数据,我需要在网站上发送由 javascript 生成的特定令牌,并且该令牌包含在标头中。
所以我想也许一种解决方案是打开网站,让它生成令牌,抓取标题,就是这样。
Selenium 是一个可以实现 Java 脚本的工具,但是,要获取标头,我需要使用 brosermob-proxy(或等效工具)。这就是我卡住的地方。
响应中没有标题,我无法弄清楚。也许使用 browsermob 的人可以看出问题所在?我也很高兴听到我的任务的另一种解决方案。代码本身如下:
from browsermobproxy import Server
from selenium import webdriver
from ast import literal_eval
import json, os
os.chdir('C:/browsermob-proxy-2.1.0-beta-2/bin')
server = Server()
server.start()
proxy = server.create_proxy()
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har('test')
driver.get('http://ok.ru')
driver.find_element_by_xpath('//input[@name="st.email"]').send_keys('****@****.com')
driver.find_element_by_xpath('//input[@name="st.password"]').send_keys('****')
driver.find_element_by_xpath(u'//input[contains(@value,"Log in")]').click()
result = literal_eval(json.dumps(proxy.har, ensure_ascii=False))
driver.close()
for entry in result['log']['entries']:
if len(entry['response']['headers']) > 0:
print entry['response']['headers']
【问题讨论】:
【参考方案1】:答案变得很简单:只需向 new_har 添加选项:
proxy.new_har('test', options='captureHeaders': True)
但是,标题中没有标记,这对我来说是一个新难题......
【讨论】:
以上是关于HAR 响应中没有标头的主要内容,如果未能解决你的问题,请参考以下文章