pandas read_html+beautifulsoup爬虫中国产业研究院2019年三季度3688家上市公司的季报信息

今天靠港避风,大风浪对我的进度影响不大,风浪中昏睡半天后生产力反而更强大了。
两天一个小项目,今天完成了爬取3688家上市公司的2019年三季报基本信息,目标网站中国产业研究院,入门级爬虫先找个软柿子吧,目前还没研究验证码和模拟登陆。轮子造好之后可以顺利爬取N多年的季报和年报基本信息,爬完处理下可以出个小分析报告了。
还是老样子,笔记本上调试完代码爬出来输出到mysql中,因为远程v p n没有设置好mysql索性输出到了csv文件,也方便索引。
船上的龟速导致我昨天晚上代码老是掉链子,经常容易read timeout,设置了retry也不行。今天完善了下代码框架,增加了user-agent随机性,并加入了高质量的proxy(高质量vpn五个),虽然速度慢了但是稳定性加强了,可以hand free模式了。本地笔记本10秒左右有时候好几分钟,远程机器因为网速快也就3-5秒一页(太快了不稳定)。
这次用了新的方案,pandas 的read_html特别适合处理表格,+beautifulsoup解析。
400多行代码,以后可以轻松爬各种表格形式的数据了。

beautifulsoup中国医疗保险网爬虫

突然想分析下这次疫情影响和国内医疗资源分配的关系,小试牛刀,在笔记本上把代码调好后在vpn上跑了起来,速度自然是快了很多。
爬取的中国医疗保险网,比较官方,这个网站有个坑,我分析它的html页面时发现网站有隐藏元素,政策浏览看不到医院的联系方式(地址,联系电话,网站,邮件),这个就是给爬虫者挖的坑。但是即便知道有坑我还是跳了,联系方式重要性不言而喻。被封了ip再说,手里有三个vpn+笔记本,估计能爬完1529页(30580家医院的信息)。爬完清洗下数据,做下分析再晒图。
代码虽然不长,但是花了我很多时间,最近牺牲的休息时间太多了。最大的坑就是那个隐藏元素不知道怎么有效地提取出来,网页上显性的东西都在html数上比较清晰,深度不算深,方便索引出来。
图一是笔记本上的代码缩略图,2-4是vpn上跑代码图,估计需要一两个小时吧!虽然代码花了一两天,但是远远比人工复制粘贴1529页容易太多。
代码采取了几个简单的反爬策略,即vpn,header设置(time out时间,浏览器伪装等,)随机休眠时间,出错应对策略等。对于比较简单的网站基本上够了。
图五是爬取的第一页,信息还算详细。完事了清洗下数据可以用pyecharts做个图做个可视化。数据有偿可取,请我吃顿饭即可[呲牙]

很可惜服务器出问题,图丢失了不少,后补几张感受下pyecharts的精美吧: