selenium模拟登录获取cookie提取数据
Python3 爬虫
因为工作需要selenium爬取数据,所以写一下自己的整个流程以及过程中踩过的坑,希望能帮到大家!
selenium模拟登录获取数据
如果不想自动化窗口弹出,添加option就可以实现,因为我是设置定时执行的,所以每次弹出很不方便。
这里遇到的第一个坑,是element定位账号密码输入框的时候一直出现错误,后面发现原来在iframe框架里面,直接定位是不成功的,需要转换并且注明框架对应的名称。
通过selenium的get_cookies得到cookie在转换成json格式保存下来,再通过for循环转换成headers里面cookie一样形式的字符串,就可以直接引用了。
我抓取的网站是json格式的,所以get请求之后就直接转换成json按照字典的规则提取就可以了。
保存数据可以多种形式,我一般是存到数据库,方便保存跟查询。
下面是源码,我都注释好了。
from selenium import webdriver
import time
import json
import datetime
import requests
option=webdriver.ChromeOptions()
option.add_argument('headless') #添加无头浏览
browser = webdriver.Chrome(options=option)
browser.get('登录网址')
time.sleep(5)#设置延时,保证页面加载完成
browser.switch_to.default_content()