Python有很多包可以抓取数据,如selenium、requests、scrapy、pandas,每个包都有其适用性,个人认为在抓取数据时,代码简洁性和数据获取的准确性是需要考虑的因素,时间快慢倒不用太在意,毕竟用python抓数据本来就大大节省了时间,用不同的方法可能也就是1秒和1分钟的区别。日常中我们总存在抓取表格数据的需求,本文试图用pandas最简洁的代码抓取表格数据,代码非常简单,也很容易上手。
随便选个网页:
http://www.nafmii.org.cn/dcmfx/tzs/ppn/index.html
比如爬取下图中定向工具的注册批文(当然wind里面也有数据,本文只是为了展示如何爬取表格型数据)一、爬取当页
只需要两句关键代码就可以抓取出来,前两句是导入相关模块,第三句输入网址,第四句用pandas读取,由于该网页有很多表格,会以list格式存在ppn这个变量里,点击查看可以发行第十四张表格正是我们所需要的内容。二、全部爬取
但是第一部分只抓取了第一页,如果想要把所有页都抓取出来,同样非常简单,只需编写一个循环。点击下一页可以发现其网址会发生相应改变:http://www.nafmii.org.cn/dcmfx/tzs/ppn/index_2.html页码会体现在index后面的数字,因此可以将url改为变量的组合,具体看第五句。第一和二句依然是导入相关模块,第三句是生成一个空矩阵,用于存储抓取完的结果,第四句至第八句是一个简单的循环,result变量就是每页抓取的结果,然后不断的添加到output里。最后output就是我们想要的结果。