爬虫遇到模拟登录几种解决方案分享


一、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('; ')}

总结

	要学会灵活变通,多种方案去试。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值