我需要从特定请求中获取cookie。问题是它在我眼前产生,我需要使用Selenium来模拟浏览器打开,所以我可以自己生成它。第二个问题是我无法访问请求cookie。我需要的cookie在请求中,而不是响应。
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('/usr/bin/firefox')
driver = webdriver.Firefox(firefox_binary=binary)
driver.get('http://www.princess.com/find/searchResults.do')
driver.find_elements_by_xpath('//*[@id="LSV010"]/div[3]/div[1]/div[1]/button')[0].click()
此代码块打开页面,在第二个结果中,单击“查看所有日期和定价”链接。 cookie是通过浏览器发送的,而不是作为响应。我需要抓住那个饼干。如果他们可以完成这项工作,其他图书馆也可以。 如果您手动转到页面,这是我需要的东西: 我已经选择了我需要的请求和Cookie,因为它显示它在请求中没有响应。这有可能实现吗?
答案 0 :(得分:0)
我发现了这是怎么做的。使用selenium
库我确实设法使其正常工作:
def fix_header():
browser = webdriver.Firefox(executable_path='geckodriver.exe', firefox_profile=profile)
browser.get('https://www.princess.com/find/searchResults.do')
browser.find_element_by_xpath(
"//*[@class='expand-table view-all-link util-link plain-text-btn gotham-bold']")
WebDriverWait(browser, 60).until(EC.visibility_of_any_elements_located(
(By.XPATH, "//*[@class='expand-table view-all-link util-link plain-text-btn gotham-bold']")))
try:
browser.find_element_by_xpath(
"//*[@class='expand-table view-all-link util-link plain-text-btn gotham-bold']").click()
except Exception:
browser.find_element_by_class_name('mfp-close').click()
browser.find_element_by_xpath(
"//*[@class='expand-table view-all-link util-link plain-text-btn gotham-bold']").click()
cookies = browser.get_cookies()
browser.close()
chrome_cookie = ''
for c in cookies:
chrome_cookie += c['name']
chrome_cookie += '='
chrome_cookie += c['value']
chrome_cookie += "; "
return chrome_cookie[:-2]
Selenium
实际上会转到该页面,然后点击"我需要使用浏览器url
并获取所需的Cookie。