Technology sharing

Python Selenium automation sine login (crustulum et indicium)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tabula contentorum

Crustulum libero login

Ut crustula per interface

Admitte pasco bypass login

adde indicium


Usura login potest reducere operationes repetitas uniuscuiusque login, directe operantur paginae menuis post login, et potest etiam reducere confirmationem securitatis login, sicut imaginem verificationis login operationes. Nota: Crustulae et signa expirata habent.

Crustulum libero login

Crustulas protinus ex machinis electronicis impetra et eas adde.

  1. from selenium import webdriver
  2. from selenium.webdriver.edge.options import Options
  3. # 一般只需要name和value
  4. cookie = {'name': 'ZY44', 'value': 'tLonhTkz50iHzxjhIsaaaafferr:C'}
  5. options = Options()
  6. # options.add_argument('--headless')
  7. wd = webdriver.Edge(options=options)
  8. wd.add_cookie(cookie_dict=cookie)
  9. #for c in cookies: # 如果是多个cookie要添加,cookies存储为列表是,使用循环添加
  10. # wd.add_cookie(c)
  11. wd.refresh() # 刷新页面
  12. wd.get(URL)
  13. wd.quit()

Tollit exception_class (nuntius, velum, ACERVUS)
selenium.common.exceptions.InvalidCookieDomainException: Nuntius: irritum crustulum domain
(Sessio info: MicrosoftEdge=26.0.2592.87)

Si errorem supra obtines, lineam wd.get(URL) ante wd.add_cookie(cookie_dict=cookie) addere potes), hoc modo:

  1. wd.get(URL)
  2. wd.add_cookie(cookie_dict=cookie)
  3. wd.get(URL)

Ut crustula per interface

Accepta crustulum notitia per interface, crustulum usus in selenium adde

  1. def get_cookies():
  2. headers = {
  3. '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',
  4. }
  5. host = 'https://baike.baidu.com'
  6. req = requests.get(host, headers=headers)
  7. cookie_data = req.cookies.get_dict()
  8. cookies = []
  9. for key, value in cookie_data.items():
  10. cookies.append(dict(name=key, value=value))
  11. return cookies

Admitte pasco bypass login

Intra in Google vel in ore navigatoris:chrome://version/   或  edge://version/ 查看配置文件夹路径,Default in fine remove, et adde ante viam ad splice quam volumus viam.

profile_directory = r'--user-data-dir=C:UsersxxxAppDataLocalMicrosoftEdgeUser Data'

  1. # 这里使用模糊匹配,把edge开头的进程都杀掉
  2. if platform.system() == "Windows":
  3. os.system("taskkill -im msedge* -f")
  4. else:
  5. os.system("killall -9 msedge*")
  6. user_data = r'C:UsersxxxAppDataLocalMicrosoftEdgeUser Data'
  7. profile_directory = rf'--user-data-dir={user_data}'
  8. options = Options()
  9. # options.add_argument('--headless')
  10. options.add_argument(profile_directory)
  11. wd = webdriver.Edge(options=options)
  12. wd.maximize_window()
  13. wd.get(URL)
  14. wd.quit()

Nota: Cum hac methodo utens, debes programmata navigatoris claudere, alioquin error nuntiabitur, necesse est ergo processum navigatri ante executionem respondentem occidere. In codice superiore interrogationi quamquam matching interrogationi utitur ad processum occidendum, et sequentia plena sunt adaptatione.

  1. returnCode=os.system('taskkill /F /iM chrome.exe') # 谷歌
  2. returnCode=os.system('taskkill /F /iM iexplore.exe') # IE
  3. returnCode=os.system('taskkill /F /iM firefox.exe') # 火狐
  4. returnCode=os.system('taskkill /F /iM msedge.exe') # edge
  5. assert returnCode==0 #判断浏览器进程是否杀完

adde indicium

  1. token = "my_token"
  2. options = Options()
  3. options.add_argument('--headless')
  4. wd = webdriver.Edge(options=options)
  5. wd.execute_script("window.localStorage.setItem('token', '%s');" % token) # 使用selenium执行js的操作添加token
  6. wd.maximize_window()
  7. wd.get(url)
  8. wd.quit()