此项目为selenium基础用法
第一步:获取 url
携带地址和 "python"关键词搜索岗位信息
爬取 boss直聘是需要携带登录信息的,可以自己登录后,上图url区域往下滑,就可找到 cookies 复制全部装进headers即可,而我使用selenium自带的 get_cookies() 现场获取
第二步:获取cookies
我选择另外建一个文件获取 cookies(getcookies.py) ,因为在获取信息的文件中会不断运行看结果(get_boss_data.py),不可能一直获取cookies吧,而且要手动登录;
获取登录信息代码如下
getcookies.py (完整代码)
from selenium import webdriver
import time
import json
# 填写webdriver的保存目录
driver = webdriver.Edge()
driver.get('https://www.zhipin.com/web/geek/job?query=python&city=101300100')
# 程序打开网页后60秒内 “你自己手动登陆账户”
time.sleep(60)
with open('cookies.txt','w') as f:
# 将 cookies 保存为 json 格式
f.write(json.dumps(driver.get_cookies()))
driver.close()
首先是调用 edge 驱动操作(有的用谷歌,反正看自己喜欢就好),然后用 get 方法请求 url ,然后然后会打开 boss 官网,60秒内自己手动登录,因为这里等待60秒,我将获取到的 cookies 写入一个文件,这样就不用一直获取来用
爬取的代码如下:
get_boss_data.py (完整代码)
from selenium.webdriver.common.by import By
from selenium import webdriver
import json
import pandas as pd
import time
driver = webdriver.Edge()
# url
driver.get('https://www.zhipin.com/web/geek/job?query=python&city=101300100')
# 清除cookies
driver.delete_all_cookies()
with open('cookies.txt','r') as f:
cookies_list = json.load(f)
for cookie in cookies_list:
if isinstance(cookie.get('expiry')