1.熟练掌握java、python语言,有良好的编程语言风格,有编写注释的好习惯。对HTML、Tomcat 等技术有实践经验。
2.熟悉Linux系统,对云服务器上的项目部署和环境搭建有实践操作,对Linux环境下的Shell编程,任务创建,管理有详细了解。能管理和部署WEB云服务器,数据库服务器,大数据平台。
3.熟悉使用request模块中的get post参数,能处理ajax动态加载加载的数据,了解用户点击登录按钮发起的post请求及模仿登陆技术。熟悉代理ip和cookie的处理。
4.了解数据加密、cookie、验证码、禁IP的反爬虫机制。喜欢研究数据加密算法并予以破解。
5.对爬虫效率的提升有一定的了解,对线程池的运用有实际操作经验。
6.对SQL库(mysql、oracle)有实际操作经验。对数据库优化技术有所了解。
7.熟悉No-Sql库,对Redis应用的缓存配置有详细了解,对Redis存储结构较为熟悉,熟悉mongodb 的存储机制,多次用mongodb为爬虫做数据存储工作。
8.熟悉大数据平台,有在虚拟机上搭建过Hadoop伪分布式和集群,zookeeper分布式,HBase数据库,sqoop数据同步工具,kafka分布订阅式发布订阅消息系统,了解zookrrper工作原理,leader选取机制,对选举算法有所了解。
9.有机器学习相关经验,了解朴素贝叶斯、关联规则、FP树、KNN、pandas和numpy
10.了解scrapy爬虫框架并有实践经验。
拉勾网职位信息爬取
项目描述:
根据用户在网页上选择的求职岗位地址信息,java传参调度新的python任务来爬取该城市的职位信息。爬取时伪造UserAgent使用代理根据用户需求拼接Url来抓取json数据包,分离出公司职位信息。存储到云服务器的MongoDB数据库。
责任描述:
使用工具:python、spyder、jupyter NoteBook、阿里云服务器、MongoDB、代理、HTML、java、Tomcat
项目需求:用户选择网页选择框的工作地点和求职岗位,进入mongoDB数据库进行搜索,有数据就返回数据列表给用户,没有数据就建立爬取任务后台运行。
遇到的问题:拉勾网有很强的反爬机制,基本上都是遇见过的,写爬取代码时要尽量考虑到伪装方 法。有了经验后json数据处理的很顺利。以前都没有通过java代码取调用python代码,两边代码都写完后在调用这方面还是不知所措的,在网上查询相关资料并通过测试之后就解决了调用和参数接收的问题,把项目打包传输到云服务器之后,完成其他数据库建表等相关操作项目就完成了。
酷狗音乐网站爬取
项目描述:
根据用户需求是歌曲搜索(深度优先)还是排行榜批量下载(广度优先)需求拼接Url地址用request访问,深度优先会把搜索的歌曲名以序号加歌曲名的列表形式显示出来,用输入序号的方式实现下载单首,多首及列表所有歌曲的选择方式。
责任描述:
使用工具:python、spyder、BeautifulSoup、正则、os
项目需求:用户输入关键字搜索,显示相关搜索结果的列表,选择下载的歌曲
遇到的问题:网页分析阶段的时候就能找到搜索出来的歌曲的url地址,url中的hashId参数和AlbumId参数每首歌都不一样,当时多获取了几首歌的这两个参数进行比对了一下,发现每首歌都不一样,第一反应是一种加密方式。想了很久没有发现规律之后还是返回到了查看json包的过程,发现其中一个json包的date包括歌曲的所有信息(包括参数)。然后就进入了爬取阶段,获取到了json数据,使用正则匹配获取到了歌曲名,作者,专辑,hashId,AlbumId,然后到了用户体验设计的阶段, 在显示给用户关键字搜索的结果的过程中发现直接显示正则匹配的结果与在json数据里看到的内容不一致。发现json数据用 \/ 这样的符号处理了数据中的符号,直接用会相当于转义符导致内容偏差, 解决方案是使用正则的替换方法将json数据中的符号转换成类似《》、()的符号。解决了下载单首歌曲的问题,就进行了下载多首歌及排行榜的功能拓展。