今天给大家伙儿分享一下我搞的这个“发票税号查询网站”的实践过程,说起来也是一波三折。
是因为公司财务那边老是让我帮忙查一些合作方的税号,开票的时候要用。每次都要跑到企查查或者天眼查上去搜,免费的每天还有次数限制,用起来贼麻烦。我就寻思,能不能自己搞一个,方便大家。
说干就干!
- 第一步,确定需求:
- 第二步,技术选型:
- 第三步,数据来源:
- 第四步,开始编码:
- 第五步,测试:
- 第六步,部署:
肯定得能查税号,这是最基本的功能。最好能顺带把公司名称、地址、电话啥的一起显示出来,省的财务小姐姐们再去其他地方核对。操作要简单,最好是输入公司名字就能直接查。
我寻思这玩意儿也不复杂,就没必要上太重的框架。前端就用简单的HTML+CSS+JavaScript,后端用Python的Flask,数据库用SQLite,简单粗暴。
这是最头疼的。一开始想的是爬企查查的数据,但是人家反爬做得厉害,搞了半天也没搞定。后来发现一些地方税务局的网站或者电子税务局系统,有提供企业税号查询服务,但是一个一个爬太累了,而且每个地方的网站还不一样。只能曲线救国,找了一些公开的企业信息数据集,虽然信息不一定是最新的,但也能应应急。
先把数据库建把数据集导入进去。然后,用Flask写个简单的API,接收前端传过来的公司名称,在数据库里查一下,把结果返回去。前端就写个简单的搜索框,用户输入公司名称,点一下搜索,就能把结果显示出来。样式方面,我就随便搞了一下,能看就行。
写完之后,自己先测了一下,发现速度有点慢,尤其是数据量大的时候。于是就在数据库里加了索引,速度立马就上去了。还发现一些公司名称比较模糊,导致查不到结果。我就加了一个模糊搜索的功能,只要公司名称里包含关键词,就能把相关的结果都显示出来。
把网站部署到了自己的服务器上。用nginx做反向代理,用Gunicorn跑Flask应用。为了防止别人乱用,还加了一个简单的验证码。
遇到的坑:
- 数据质量:
- 反爬虫:
- 性能优化:
公开数据集的数据质量参差不齐,有些公司的信息是错的,有些公司已经注销了,但是还在上面。只能人工筛选,定期更新数据。
想从企查查或者天眼查爬数据,难度太大,搞了半天也没搞定。只能放弃,找其他的数据来源。
一开始查询速度很慢,加了索引之后才好一点。以后数据量大了,可能还要考虑用更高级的数据库,比如PostgreSQL。
这回实践还是挺有意思的。虽然功能很简单,但是解决了我自己的一个实际需求。而且也让我对Web开发有了更深入的了解。以后有机会,还会继续折腾其他的项目。
还没有评论,来说两句吧...