一、seleium模拟登录
1.谷歌浏览器下载一个seleium驱动
2.代码如下:
import time
import json
#
from selenium import webdriver
browser = webdriver.Chrome(executable_path=r'C:\Users\TC-9\Downloads\chromedriver_win32\chromedriver.exe')
browser.get('需要访问的url')
#
# 用户信息
user_name = '****'
user_password = '****'
browser.find_element_by_name('LoginName').send_keys(user_name)
time.sleep(2)
browser.find_element_by_name('Password').send_keys(user_password)
time.sleep(2)
browser.find_element_by_xpath('//*[@id="aSubmit"]').click()
time.sleep(2)
browser.find_element_by_xpath("//div[@class='panel-body menuBar']/a[4]").click()
# print(browser.page_source)
# browser.close()
# 获取cookie并通过json模块将dict转化成str
dictCookies = browser.get_cookies()
print(dictCookies)
jsonCookies = json.dumps(dictCookies)
print(jsonCookies)
# 登录完成后,将cookie保存到本地文件
with open('cookies.json', 'w') as f:
f.write(jsonCookies)代码片
二、scrapy携带cookie访问
1.不能在headers中直接带cookie,这样请求不出来
2.把cookie放到scrapy传参发送请求那
代码如下(示例):
# cookie字符串
cookies_str = "************************************************************"
# 转换成字典形式备用
cookies_dict = {i.split('=')[0]: i.split('=')[1] for i in cookies_str.split('; ')}
总结
要学会灵活变通,多种方案去试。