爬虫入门|爬取众筹网站投资人列表
点击「DataCastle数据城堡」快速关注~
对于编程,我是个外行人。
在教育行业做了近10年的市场,过去想去了解一些竞争对手或是同行的信息,基本上也是靠一页一页的去翻,一行一行复制到Excel当中,定期去做更新做分析。
虽然很早就知道爬虫这个东西,但是真正了解它,并使用它还是从这次的课程开始。非常DC学院提供了这么一个学习交流和实战的平台,谢谢先生们把我领进门...哈哈哈
前两天学完基础阶段的课程,就想着能不能有啥机会练练手...机会来了
一个朋友微信上转了一个众筹的链接给我看,打开页面,看到有600多人已经预约,
我本能地点进去看看,哪些人预约投资了,分别预约了多少金额...
手机屏幕上是滑动加载的,滑动一下增加几个,看起来很不方便,也无法进行横向对比。于是我决定用刚刚学的爬虫试试手(这便有了今天的作业,说实话,之前不大敢提交,因为觉得会不会太小儿科了...)废话有点多了,入正题
1分析页面从电脑版微信打开链接得到http://www.http://www.d5ct.com/project/416,使用chrome试验发现网页是JavaScript加载的,于是按照老师教的方法,打开检查页面。在XHR中成功找到相应的投资者列表。
按照教程安装了JSONView,并打开网址:http://api.d5c360.com/v1/project/416/expect/invests?page=2&per_page=5,发现页面内是一个字典,我需要的条目都在里面,不过只有5个。分析一下网址,发现了page和per_page两个参数。几经尝试发现per_page如果去掉,一页能显示20个条目;如果不去掉,per_page最多能够显示100个条目,再多就无法正常显示了。有了这个信息,面对600多个投资者信息,节省了很多工作量。
接下来,就可以开始写代码了,在此之前,我还是检查了一下robots.txt , 出现的是404页面(居然没设反爬措施...哈哈哈)
2代码写啊写作为初学者,决定严格按照教程,一步一步操作,先打印第一页抓取的内容看一看,再分析翻页的实现。
没有报错,成功返回了相关的信息,后面发现最后的数据:"list_count": 653} 不是我需要的,于是采用了字典的一个选择方法[‘investor_list’]进行一个简单的筛选,奏效。
接下来,按照教程,设置翻页,开始用user_data列表extend,最后用pandas将数据放入本地文件user.csv中。值得一说的是,由于已经知道了"list_count": 653,我设置per_page=100,所以我很容易知道,一共有7个page就行了。
shift+F10 开始运行
没有报错,大功告成......可是当我打开user.csv时还是出现了一个意想不到的小问题:
user_name下面是什么鬼...乱码了。一番百度,最后添加了 encoding="utf_8_sig"问题得以解决。至此,首次爬虫尝试,经历了几次小波折终归拿到自己想要的数据。排序之后,发现有钱人真多...(已经不能安心的码字了)
经过这个小小的尝试,总结了小小的经验,也发现了更多的不足,供大家参考:
1、网址的分析和修改尝试非常有用,一方面可以找到翻页规则,另一方面可以简化爬取的页数(如网址中的per_page);
2、编码信息非常的重要,encoding的设置能够解决一些乱码的问题;
3、不懂的时候,经常百度一下,会发现有很多朋友遇到过类似的问题;
4、这一次的实践,其实最终的数据表格中,我只想拿到‘investment’,‘user_id’,‘user_name’三部分的信息,对于‘head’‘invest_time’的信息我并不需要。但是如何在爬取阶段就进行筛选,试了好多次,都没找到合适的方法。特恳请大神老师们指导。
5、此外很奇怪的是抓取到的金额都是实际金额的100倍,比如¥8760对应抓取到的数字却是876000,这一部分是否能在抓取的时候就进行换算纠正呢。特恳请大神老师们指导。
PS:关注微信公众号回复关键词“众筹网站”即可获取完整源代码哟~
- ncurses 入门指南 | Linux 中国
- 新春福利2:《Excel VBA解读 基础入门篇》电子书分享
- 超巨的入门标准?这些角色球员也曾狂砍50+!
- 从入门到精通 基金理财四大阶段你经历了几个?
- 白酒怎么喝不辣?外国友人亲测了一套白酒初级入门指南
- 心得:股市入门靠什么?每个股民都值得看的!
- 绝地求生刺激战场:4个小技巧教你快速入门成为进阶玩家!
- diy永不凋零,入门独显GT1030、GTX750、GT740对比测试
- DNF无深渊年宠,打造一个4000智18勇气的入门小姐姐 !
- 股票入门基础知识:如何选择抗通胀股票?