簡體   English   中英

使用 Selenium (Python) 從 iFrame 中提取 cookies

[英]Extracting cookies using Selenium (Python) from an iFrame

我可以從網站上獲得 cookies 就好了。 但我對聊天機器人正在使用的 cookies 感興趣,例如有聊天機器人網站,例如: <www.kinguin.net><www.multibankfx.com><coschedule.com>

如果我們在這些網站上使用 go 並“檢查元素”它們,然后在 cookies 下查看secure.livechat.inc(這是聊天機器人),將會有 1 或 2 個 Z55E7DD3016CE12F72 如下圖所示

在這張圖片中,我在名為 <www.kinguin.net> 的網站上查看聊天機器人的 cookies,我們可以在那里看到一個 cookie,即“__livechat”

所以這個cookie是我想使用selenium自動化和提取的。

我的以下代碼返回網站上的所有 cookies 但缺少“_livechat”

import os, sys, json, codecs, subprocess, requests, time, string
from selenium import webdriver  
from selenium.webdriver.common.keys import Keys  
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup as bs
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Chrome()
host = 'kinguin.net'
driver.get("https://"+host)
cookies = driver.get_cookies()
driver.switch_to.default_content()
cookies = driver.get_cookies()
for item in cookies:
    print(item['name'])

更進一步,我的以下代碼進入聊天機器人的 iFrame 並獲取 cookies 但返回 null

driver.switch_to.default_content()
elementID = driver.find_element_by_id('chat-widget')
driver.switch_to.frame(0)
cookies = driver.get_cookies()
for item in cookies:
    print(item['name'])

@ble非常感謝-您建議的方式僅對我不想要的這個特定網站有用。 如果我無法在之前的查詢中清楚地解釋它,我很抱歉,但我想要一個針對大型網站數據集的通用解決方案。

例如,如果我們查看 <www.ebanx.com> 這里的聊天機器人是不同的,因此我將通過elementID = driver.find_element_by_id('hubspot-messages-iframe-container')搜索它

如果我在這個driver.switch_to.frame(elementID)之后使用你的代碼

它給了我錯誤

NoSuchFrameException:消息:沒有這樣的框架:元素不是框架

通過這行代碼,您可以找到 iframe 元素:

elementID = driver.find_element_by_id('chat-widget')

使用它切換到 iframe,您將能夠使用您編寫的代碼收集 cookies

driver.switch_to.frame(elementID)

完成后,切換到默認內容

driver.switch_to.default_content()

該頁面上有更多 iframe。 最簡單的方法是使用唯一標識符(例如“id”或“name”)來查找元素,並將其存儲在變量中,例如“elementID”。 我建議將其重命名為“iframe_element”,因為它不是 ID,您只是通過 ID 獲取了元素。 此外,如果頁面上沒有太多 iframe( https://www.guru99.com/handling-iframes-selenium.html ),請避免按索引搜索( driver.switch_to.frame(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM