2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sisällysluettelo
Hanki evästeet käyttöliittymän kautta
Ota selaimen ohituskirjautuminen käyttöön
Kirjautumisen käyttäminen voi vähentää jokaisen kirjautumisen toistuvia toimintoja, käyttää valikkosivua suoraan sisäänkirjautumisen jälkeen ja voi myös vähentää suojausvarmennuskirjautumista, kuten kuvanvarmistuskirjautumistoimintoja. Huomautus: Evästeillä ja tunnuksilla on viimeinen voimassaolopäivä.
Hanki evästeet suoraan kehittäjätyökaluista ja lisää ne. Alla oleva kuva näyttää useiden verkkosivujen evästeet. Valitse vain tarvitsemasi.
- from selenium import webdriver
- from selenium.webdriver.edge.options import Options
-
- # 一般只需要name和value
- cookie = {'name': 'ZY44', 'value': 'tLonhTkz50iHzxjhIsaaaafferr:C'}
-
- options = Options()
- # options.add_argument('--headless')
- wd = webdriver.Edge(options=options)
-
- wd.add_cookie(cookie_dict=cookie)
-
- #for c in cookies: # 如果是多个cookie要添加,cookies存储为列表是,使用循环添加
- # wd.add_cookie(c)
-
- wd.refresh() # 刷新页面
-
- wd.get(URL)
-
- wd.quit()
nosta poikkeus_luokka(viesti, näyttö, pinojälki)
seleen.common.exceptions.InvalidCookieDomainException: Viesti: virheellinen evästeverkkotunnus
(Istunnon tiedot: MicrosoftEdge=126.0.2592.87)
Jos saat yllä olevan virheen, voit lisätä rivin wd.get(URL) ennen wd.add_cookie(cookie_dict=cookie) seuraavasti:
- wd.get(URL)
- wd.add_cookie(cookie_dict=cookie)
- wd.get(URL)
Kun olet hankkinut evästetiedot käyttöliittymän kautta, lisää evästeiden käyttö seleeniin
- def get_cookies():
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
- }
- host = 'https://baike.baidu.com'
- req = requests.get(host, headers=headers)
- cookie_data = req.cookies.get_dict()
- cookies = []
- for key, value in cookie_data.items():
- cookies.append(dict(name=key, value=value))
- return cookies
Kirjoita Google- tai Edge-selaimeen:chrome://version/ 或 edge://version/ 查看配置文件夹路径,
Poista oletusarvo lopussa ja lisää sitten ––user-data-dir= ennen polkua liittääksesi haluamamme polun.
profile_directory = r'--user-data-dir=C:UsersxxxAppDataLocalMicrosoftEdgeUser Data'
- # 这里使用模糊匹配,把edge开头的进程都杀掉
- if platform.system() == "Windows":
- os.system("taskkill -im msedge* -f")
- else:
- os.system("killall -9 msedge*")
-
- user_data = r'C:UsersxxxAppDataLocalMicrosoftEdgeUser Data'
- profile_directory = rf'--user-data-dir={user_data}'
-
- options = Options()
- # options.add_argument('--headless')
- options.add_argument(profile_directory)
- wd = webdriver.Edge(options=options)
-
- wd.maximize_window()
- wd.get(URL)
-
- wd.quit()
Huomautus: Kun käytät tätä menetelmää, sinun on suljettava vastaava selainohjelma, muuten raportoidaan virhe, joten sinun on lopetettava vastaava selainprosessi ennen suorittamista. Yllä oleva koodi käyttää sumeaa hakukyselyä lopettaakseen prosessin, ja seuraava koodi on täydellinen vastaavuus.
- returnCode=os.system('taskkill /F /iM chrome.exe') # 谷歌
- returnCode=os.system('taskkill /F /iM iexplore.exe') # IE
- returnCode=os.system('taskkill /F /iM firefox.exe') # 火狐
- returnCode=os.system('taskkill /F /iM msedge.exe') # edge
- assert returnCode==0 #判断浏览器进程是否杀完
- token = "my_token"
-
- options = Options()
- options.add_argument('--headless')
- wd = webdriver.Edge(options=options)
-
- wd.execute_script("window.localStorage.setItem('token', '%s');" % token) # 使用selenium执行js的操作添加token
-
- wd.maximize_window()
- wd.get(url)
- wd.quit()