笔者去年暑假在律所实习时,做得最多的是Knowledge Management这一类活,听起来似乎高端,实际上大部分时间都耗费在下载文件,按格式命名,上传到律所数据库上,不需要任何智商或法律知识,理论上燕南园的野狗也能做。
笔者对此类体力活是又爱又恨,短时间内有助于停止思考、放松大脑,而长时间的重复会对自身价值和自我存在产生严重怀疑。周末闲下来看了一些Python爬虫的教程,并尝试写了一个很简单的下载文件爬虫。
工作场景
Senior发来邮件,要求整理商务部反垄断局(现隶属国家市场监督管理总局)2018年5月至6月的经营者集中简易案件公示。作为高度熟练的实习生,我的工作流程是,打开反垄断局网站,浏览案件列表:
点开第一个案件,将名为“经营者集中简易案件公示表.doc”的文件下载至本地,由于原文件名是由时间和序号组成的数字,还需要重新命名为“黑石集团有限合伙收购汤森路通公司部分业务案”。返回列表页,对下一个案件重复上述操作。
目标分析
我们要做的就是,用爬虫替代实习生的上述工作:
爬下反垄断局网站简易案件公示页面的内容
筛选出目标案件的链接
打开每一个案件链接,爬下案件页面的内容
筛选出文件的链接和案件名称
下载至本地并以案件名称命名
具体代码
爬取网页使用requests库,筛选内容使用BeautifulSoup4库。主要为三个部分:
1.爬取网页内容
2.筛选链接
3.下载文件并命名
最终效果
目前的程序初步实现了简易案件的下载和命名,但还有很多可以优化的地方,如将文件按照"序号_名称_时间”的方式命名、使用Scrapy多线程爬虫提高抓取速度等。值得进一步思考的还有如何提高程序的可适应性、如何对下载文件进行数据分析等。由于期末临近,这些想法暂时没时间完成了。
总之,下次笔者再去律所实习时,终于可以解放部分体力劳动,有更多时间用于需要一定专业知识和技能,同时又能提升自己的工作啦(摸鱼)!
领取专属 10元无门槛券
私享最新 技术干货