get_cookies.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2022/12/5
  4. import json
  5. import os
  6. import sys
  7. import time
  8. from selenium.webdriver import DesiredCapabilities
  9. from selenium import webdriver
  10. from selenium.webdriver.chrome.service import Service
  11. sys.path.append(os.getcwd())
  12. class GetCookies:
  13. @classmethod
  14. def get_cookies(cls, channel):
  15. channel_url = 'https://haokan.baidu.com/tab/'+str(channel)
  16. ca = DesiredCapabilities.CHROME
  17. ca['goog:loggingPrefs'] = {'performance': 'ALL'}
  18. chrome_options = webdriver.ChromeOptions()
  19. chrome_options.add_argument('headless')
  20. chrome_options.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36')
  21. chrome_options.add_argument('--no-sandbox')
  22. driver = webdriver.Chrome(desired_capabilities=ca, options=chrome_options, service=Service('/Users/wangkun/Downloads/chromedriver_v107/chromedriver'))
  23. driver.implicitly_wait(10)
  24. driver.get(channel_url)
  25. time.sleep(5)
  26. logs = driver.get_log('performance')
  27. driver.quit()
  28. for line in logs:
  29. msg = json.loads(line['message'])
  30. if 'params' not in msg['message']:
  31. pass
  32. elif 'headers' not in msg['message']['params']:
  33. pass
  34. elif 'Set-Cookie' not in msg['message']['params']['headers']:
  35. pass
  36. else:
  37. cookies = msg["message"]['params']['headers']['Set-Cookie']
  38. return cookies
  39. if __name__ == '__main__':
  40. print(GetCookies.get_cookies('recommend'))