3、爬虫-selenium-获取用户cookie的使用

注意这里使用的是chrom浏览器、所以要下载对应版本的chromdriver.exe工具、且放在同一文件目录下或者在电脑中设置环境变量、或者放在pycharm安装目录下的  E:\installDir\python\Scripts  路径下即可

chromedriver-120.exe
from selenium import webdriver

#webdriver.ChromeOptions() 此对象用于配置浏览器的选项、这里的detach=true意味着当浏览器关闭时、浏览器进程继续在后台运行
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)
#driver = webdriver.Chrome(executable_path="./chromedriver-120.exe", options=options)

#url1 = "https://www.xinpianchang.com/discover/article-1-0?utm_source=xpcWeb&utm_medium=navigatorCate&index=4"
url2 = "https://www.baidu.com"

#driver.get(url1)
driver.get(url2)

#回到上一个页面
#driver.back()
#进到下一个页面
#driver.forward()

#和页面中的元素交互
#先声明要操作的元素、这里的id和kw对应的是百度里的搜索栏里的对应的id=kw值
#创建元素对象
send_k = driver.find_element("id","kw")     #这里的find_element()主要是以id来定义元素框的位置
#找到百度中的搜索框后要对搜索框操作、send_key发送值
send_k.send_keys("北京")
#发送搜索的内容后要点击搜索按钮、到百度里找到对应的id和value
click_k = driver.find_element("id","su")
click_k.click()     #点击

#获取页面中的内容、保存到变量  、获取html源码
content = driver.page_source
print(content)


#cookie的API、用来控制浏览器账户以及一些缓存的API
driver.get_cookie()


#deriver.close()

 

cookie的使用

获取cookie操作

get_cookies.py

"""
获取网页登录的cookie
"""

from selenium import webdriver
import json
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True) #防止网页自动关闭
driver = webdriver.Chrome(options=options)

#新电影网
url = "https://passport.xinpianchang.com/login?redirect_uri=https%3A%2F%2Fwww.xinpianchang.com%2Fuser%2F14390601&mode=quick&type=phone"

#注意在打开网页后要先手动登录
driver.get(url)

#获取cookie、是一个列表
cookies =driver.get_cookies()
#将获取的cookies转化为字符串格式序列化
cookies_str = json.dumps(cookies)
#将拿到的cookies保存在cookies.txt文本中
with open("cookies1.txt", "w", encoding="utf-8") as file:
    file.write(cookies_str)

 

使用已获取到的cookie进行登录

"""
在获取到了cookie前提下实现自动登录
"""
from selenium import webdriver
import json
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)

#打开网页
#url = "https://kyfw.12306.cn/otn/resources/login.html"
url = "https://passport.xinpianchang.com/login?redirect_uri=https%3A%2F%2Fwww.xinpianchang.com%2Fuser%2F14390601&mode=quick&type=phone"
driver.get(url)

#读取cookie
with open("cookies1.txt", "r", encoding="utf-8") as file:
    cookies_str = file.read()

#将字符串反序列化为json格式
cookies = json.loads(cookies_str)

#将cookie注入浏览器、且要迭代一个一个注入
for cookie in cookies:
    driver.add_cookie(cookie)

#登录后再打开首页、查看是否已经登录
driver.get("https://www.xinpianchang.com/")
posted @ 2024-07-01 22:22  little小新  阅读(111)  评论(0)    收藏  举报