1、scrapy框架使用,scrapy-redis设计分布式
2、bs4,lxml,re解析数据
3、有js逆向经验
4、有伪装浏览器,封IP经验
5、有使用OCR识别验证码,或验证码的其它解决方案经验
6、有数据存储csv文件,mysql经验
一、天眼查爬虫
1、分析网页数据,考虑到数据量较多,采用scrapy-redis搭建分布式爬取数据,此框架搭建分布式比较方便且爬取更快,而且也实现了数据去重、增量处理
2、初次使用静态cookie进行数据爬取,后因静态cookie的时效性,采用了重写spider中的start_requests方法,并使用selenium、PhantomJS无界面模拟登录获取动态cookie信息
3、使用BeautifulSoup模块处理数据,用css选择器对数据进行抽取,解析
二、汽车之家
1、了解数据需求,分析网页发现部分数据使用js动态加载,并使用伪元素加入混淆
2、根据js逆向策略,找出对应的js文件从最后一步找起,缺啥找啥,把需要的函数找到使用PyV8库对js作解析,最终找出数据的映射关系
3、结合数据的映射,使用requests,正则,xpath提取网页需要的数据
4、通过pymysql模块将爬取的数据保存到mysql数据库
scrapy-redis设计爬虫: 分布式爬取社交网站数据 scrapy,redis,mysql,python requests模块请求网页数据 selenium模拟浏览器登录 用scrapy-redis框架特性实现数据去重及数据增量
1、对需要爬取的数据进行分析,思考解决爬虫中的难点问题,因数据量较多,使用多台主机部署爬虫 2、使用requests的post方法请求世纪佳缘登录页面,使用RequestsCookieJar方法获取动态cookie 3、构建代理IP池,使用BeautifulSoup模
1、对需要爬取的数据进行分析,思考解决爬虫中的难点问题,因数据量较多,使用多台主机部署爬虫 2、使用requests的post方法请求世纪佳缘登录页面,使用RequestsCookieJar方法获取动态cookie 3、构建代理IP池,使用BeautifulSoup模