很多网站需要先模拟登录然后才能获取到数据,爬取数据是不能每次都登录一遍,通常情况下网站对于登录接口会有检测,也会限制频率,当到达一定频率以后就会出现验证码,或者第二登录页(第二种登录页面(元素定位发生改变)的情况。
通常的做法是指定一个周期进行登录,并将登录后的cookie进行保存,获取数据时,将cookie加入到请求中。
下面是为chromedriver添加cookie的常用做法:
def add_cookies_from_file(filename, blankurl):
if lock is not None:
if blankurl is None:
blankurl = 'https://www.baidu.com'
with open(filename, 'r', encoding='utf-8') as load_f:
load_dicts = json.load(load_f)
driver.get(blankurl)
cookies = load_dicts.get('cookie','')
for cookie in cookies:
driver.add_cookie(cookie)