爬取5000个coupon品牌(商店) 30000个字段(201
首先要理解需求,把需求弄清楚,千万别找了几个coupon站就开始抓,抓下来的数据却用不上。要知道数据工程师的工作主要时间不是花在了爬虫上,而是数据整理上。
第一步:整理出 哪些coupon网站上的哪些页面上存在这5000个coupon 品牌的30000个字段。
那就需要多多准备站源,通过google搜索先准备10个站源。通过网站sitemap和网站品牌目录尽量把每个网站的品牌的页面(URL)都找到并且准备好。
第二步:数据发现。从这些页面里找到品牌对应的页面。对每个页面重新建立品牌索引。需要的5000 coupon 品牌和url 建立一一对应关系。理想的情况是一个站源能对应上1000~2000并且对应的字段有数据。
有些站源品牌的页面的url多达10万多。数据发现这一步,要用正确的算法来提高所需品牌和页面url的关联
第三步:数据抓取和解析。为了提高效率,优先抓取数据丰富(url对应多的站源)和反爬没那么严重的站源。
第四步:数据整合。正常情况是数据不足的,这时就要继续扩充站源和继续抓取,也就是第二步和第三步的循环。
说明:开发文档和库表设计文档是一定要写的。文档可以使你的思路清晰和提高你的工作效率,以及监测你的工作进度。
理想状态是过10个站源,数据就齐活了。事实上,完工的时候,站源已经扩展到了66个。
数据发现: 站源的发现,需要准备个爬虫来爬取 google 的搜索结果,通过coupon 品牌 来找到相应的coupon站源 这样可以大大提高工作效率
数据整理和数据管理
一、每个站源的表结构一致。方便批量操作。myql 复制表和初始表的数据是需要的。
二、爬虫的结构要清晰,公用的部分要封装好,这样没增加一个站源,仅仅需要写一些解析页面的代码,而不需要再处理数据库,取url,公用的数据处理函数等相关的操作的了。
三、数据管理。要使每个字段的数据可跟踪,这测试时发现数据不正确,可与快速定位到哪个站源的哪个url。