熟练掌握Python编程语言
熟练掌握常见反爬虫策略以及应对措施
熟练掌握Python爬虫框架Scrapy、Scrapy-Redis及常用模块requests、selenium
熟练掌握网页抓取原理及技术,熟练掌握正则表达式、xpath、css等网页信息抽取技术
熟练掌握Mysql、Redis、sqlite数据库的使用
熟悉Linux常用指令
熟悉常用的SQL语句
熟悉HTML、CSS、JS前端技术
熟悉使用 Git 进行项目代码管理,熟悉flask项目开发流程
了解numpy、pandas、matplotlib对数据进行运算分析及可视化
了解部署 nginx 服务器
Scrapy爬取新浪微博移动端
开发工具:Redis + Requests + Selenium + Pyquery + Scrapy + MongoDB
项目描述:爬取的目标是新浪微博用户的公开基本信息,如用户基本信息、用户的关注、粉丝列表以及发布的微博等,这些信息抓取之后保存至MongoDB。对爬取网站内容设置爬取时间,进行增量爬取,每天的日增量在一百万左右。
应用技术:1. 搭建Cookies池、代理池,分别保存到Redis数据库;
2. 使用Selenium和ChromeDriver破解微博四宫格验证码;
3. 使用开发者工具分析Ajax请求,找到要访问的URL接口;
4. 使用Scrapy创建项目,来完成微博的Spider;
5. 使用正则匹配、time库对微博时间进行标准时间转换,给爬取时间赋值,每天增量爬取;
6. 启用Middleware,实现与Cookies池和代理池的对接,破解网站的反爬技术。
7. 将爬去的数据保存到MongoDB数据库,使用update()方法,$each、$set操作符对数据进行遍历和更新;
爬取微信公众号文章
开发工具:Aiohttp + Requests + Redis + Pyquery + PyMySQL
项目描述:利用代理爬取微信公众号的文章,提取正文、发表日期、公众号等内容,分析网站源代码的获取方式,通过Fiddler抓包抓取网站的起始链接以及翻页链接,使用aiohttp进行异步请求,提高爬取速率,把爬取结果保存到MySQL数据库。每天日增量在10万左右。
应用技术:1. 利用Fiddler抓包,分析要请求的URL;
2. 构造Redis爬取队列,用队列实现请求的存取;
3. 对接代理池模块,获取随机代理,更换代理进行网站请求,破解网站的反爬技术;
4. 构造请求放到队列中调度;
5. SQL语句建立一个数据表,使用pymysql将数据存储到MySQL数据库。
项目职责:1. 实现异常处理,失败的请求重新加入队列;
2. 实现翻页和提取文章列表,并把对应请求加入队列;
3. 实现微信文章的信息的提取;
4. 将提取的信息保存到MySQL。
分布式爬取潜在客户信息
项目描述:深度爬取垂直领域商城、论坛,分别提取出多类产品潜在客户信息、清洗、入库。通过运用Scrapy-redis框架分布式爬取淘宝,京东,苏宁易购网站的商品信息,将信息分类存储,对数据进行初步清洗,以便分析人员进行领域分析,达到客户需求。数据日增量在100万左右。
应用技术:1. 采用scrapy-redis框架,运用代理池,生产可采用分布式框架实现爬虫集群;
2. 利用redis存储Request请求,进行去重处理,并且对各个Slave端爬虫实现集中 管理和控制;
3. 采用Selenium+PhantomJS实施动态HTML的数据抓取;
4. 运用Numpy、Pandas对数据筛选、清洗。
项目职责:1. 中间件的编写利用selenium + PhamtonJS的方式发送请求获取动态加载的数据;
2. 将爬取到的数据存储到Mongodb库中进行短期的保存;
3. 爬虫程序的后期维护工作。
爬取各大租房网站并对房源信息进行处理分析
应用技术: Python + Scrapy + Mysql + Numpy + Pandas + Matplotlib
项目描述:对民宿短租、我爱我家、365租房网等各大租房网站进行数据抓取,提供基础数据,并对房源信息通过地区、类别、价格性质进行分类,利用redis数据库存储request_url,进行爬虫去重处理,最终将爬取数据存储到MySQL中。
项目职责:1. 创建Scrapy工程,进行采集配置更改;
2. 利用redis数据库对 request_url 的永久化存储,进行爬取进程的去重处理;
3. 利用xpath对网页数据进行提取,将数据保存到MySQL数据库;