任务要求:
爬取实习僧网站的招聘公司信息和职位信息,并存储到数据库中,对应的数据库表和需要爬取的字段见下面表一和表二(注意:爬取存在的字段)
代码以上传带github上:使用requests爬取实习僧网站数据
看一下爬下来的结果图:
公司信息:
职业信息:
1. 检查是否有api
无
2. 选择需要连接的数据库
mysql
3. 数据流分析
- 确定爬取的范围
部分页 - 切入源头
https://www.shixiseng.com/interns?k=&t=zj&p=1 - 多层网络结构间跳转流程
更改参数p进行爬取 - 范围细分
无
4. 数据采集
- 请求模块
requests - 解析工具
xpath - 数据存储
mysql - 爬虫效率提升问题
使用多协程
5. 反反爬虫
会有请求失败的问题:通过添加请求头解决
遇到的问题:
1. 在爬取的字符串数据中值需要一部分:
使用split将字符串进行切割
2. 判断爬取的数据是否是你需要的:
使用if判断a字符串是否在b中
3. 爬取停止:
sys.exit('tingzhi')
4.crontab定时任务:
- 先vim /var/spool/cron/root (打开这个文件)
- 添加任务:
每天的第一个小时的第一个分钟执行
1 1*** python /root/lezhi/爬取实习僧/spider_shixiseng.py
- esc 之后 :wq保存退出
**部署问题:**
screen -x 20156 (打开后台状态为 Attached 且名称为 django 的 screen shell)
vim 编译器
: (冒号进入编译模式)
q 退出
w 保存
i 编辑
screen -X -S 4588 quit (杀死一个已经detached的screen会话 )