Loading...
墨滴

周春

2021/04/26  阅读:37  主题:默认主题

新手第一个爬虫的复杂内心戏丨训练营实记

新手第一个爬虫的复杂内心戏丨训练营实记

你好,我是麦叔第一期训练营的小助理,在参加训练营之前也是一名Python新手小白。不过严格意义上说,不能算一名特别新的萌新,毕竟我在B站上也入门了4、5次...多少还是掌握了一点Python的基础,然而学了忘、忘了学,我对于python的基础基本是聊胜于无

基本上代码一看就会,一写就废...

我学习Python有几个很痛苦的点: 1.B站上课程良莠不齐。很多号称免费,但是课程不连贯,你能明显感觉到下一节课和上一届课的视频有跳过很多东西没讲 2.调bug费力。因为入门不系统,再用编辑器写代码就会遇到各种问题,比如有些库怎么死活安装不上去?为啥跟视频上代码一样,我就跑不通?CSDN上找了半个小时都找不到能用的答案 3.付费课信任成本高。想报付费课程,网上好多选择,清一色都包装的是名师,在见过几次机构收费之后用老旧的教材来教授课程/授课老师名过其实,还店大欺客的不让退费的新闻之后,我又犹豫了,信任的成本有点高

我这个人属于间歇性勇猛精进,持续性混吃等死的那种性格,遇上这三个痛苦的点,学Python当技术大佬的热血一天一天就这么冷下来了

没事,南京两套房也还能凑合过...

有一天我看到麦叔公众号上说准备做爬虫训练营,久违的热血又上头了,静默的血脉翻涌,我内心思忖:再给自己一次机会,你可以学会的,这次再学不会就放弃吧,以后老老实实当条咸鱼躺平算了

麦叔在B站上的硬核Python广为人知,好评很多,公众号上输出的干货也多,加上和麦叔有过一次交流,得知其有15年的编程经验

大佬,受弟弟一拜

训练营价格只有三位数,尤其我是第一批加入进来的,299元训练营费用+200元打卡26天就返的费用,盘算了一下,学30天交299,差不多是一天不到10块钱,一天不到瑞幸咖啡的钱,把瑞幸咖啡戒了吧,毕竟加糖也不健康,明天开始雀巢黑咖啡走起,一罐能喝大半个月

报训练营这可是投资自己啊,我拍打着肥肉乱颤的大腿,血糖的降低让意志力有些低迷,小嘬了最后一口瑞幸咖啡,我含泪给麦叔转了499,可千万别辜负了弟弟的期待呀

好吧,那就加入进来试试吧,我一定可以学会的,加油,奥利给~

加入进来之后就是4天的Python入门和3天的爬虫 入门,整体感觉还好,尤其我之前还有一点在B站上学来的Python基础,所以在入门上基本没有压力,虽然课后作业写的磕磕绊绊的。

爬虫入门也没啥压力,毕竟我上学的时候学过3年C语言,虽然专业学的不咋样,至少基本的HTML素养还是能入门的....

4月18号正式课的第一天,主要是看麦叔根据过往法院判罚企业用爬虫犯罪的案例,梳理了一套本训练营需要遵守的爬虫标准,比如不要爬超过100页/1000条数据;不要商用,挡了对方财路等。俗话说:挡人财路如杀人父母

想想那些因为爬了敏感数据虽然没赚多少钱,但是在监狱里直接就财务自由了,这魔幻的世界...

在麦叔条理清晰,逻辑严密的论证总结后,我掌握了基本爬虫守则,还签了个保证书。希望“爬虫学得好,牢饭吃到饱”这样的宿命论不会降到我头上

4月19号正式课第二天,开始学爬豆瓣电影Top 250(一共250部电影,分10页,每页25个电影),豆瓣对小白们比较友好,没有太多反爬规则,哪怕爬的次数多了给你封号了,过半个小时就能解封,半小时之后又是一条好汉!

哈哈哈,还是建议对豆瓣好一点,毕竟人家服务器成本也不低。

课程一开始开始要import requests (引入爬虫的库),加上整个训练营都用xpath,还要 from lxml import etree

在写这两行代码的时候我就遇到了困难,我的编辑器vscode上显示识别不了requests

教程里给了部分回答,我在训练营群里也问了大佬们,用python -m pip install requests/lxml 装好库之后,就能顺利运行了,小韭菜就这样顺利跨过了第一个槛

可能我Python的段位比较低,麦叔十几行代码撸下来,一路顺风顺水,思路清晰。这可苦了老夫了,加headers还可以理解,response是个什么玩意儿?etree.HTML又是个啥?怎么一下子就接上xpath了?

我晃了晃我的小脑袋,把里面的水晃出来是不是就能更好的理解这些代码了?

于是,我做了一个三步走的决策: 1.先跟着把代码写下来跑一遍,先跑通流程 2.在群里问问为啥是这样的流程(毕竟15年的编程经验,这样写肯定是有内在逻辑的,只是我没搞明白) 3.掌握了之后再试着爬一点别的网站巩固一下技能

确定了三步走的策略之后,我就老老实实跟着麦叔把代码都敲了一遍,结果真的成功了~ 也是能爬豆瓣的男人了,哈哈哈 这是首页的代码,25部电影的排名、标题、评分,老老实实、整整齐齐的躺在结果这一栏里

我是从上面第10行代码开始不理解的,于是在训练营群里问了一下,得到回复如下:(注:第一行、第二行和第三行分别对应代码的10、11和13行)

训练营里面,还是大佬多,交流氛围超级好,学习进度快的同学也很愿意给进度慢的同学答疑解惑

结合麦叔的视频,我又琢磨了一下,response是请求获得响应,返回200,表示豆瓣允许你能爬它的内容了

到了第11行,就相当于把网页变成一颗枣树,我要抓的电影的序号、标题和评分就相当于这颗枣树上的三个大枣

到了第13、14、15行,就是相当于拿xpath当杆子来找到对应的枣,给他打下来

到了最后就是品尝美味的枣了,也就是能看到爬下来的结果了~

大概逻辑就是图上这样,虽然图画的有点丑,哈哈哈

不过通过和旧有的知识做关联,新的知识掌握的就牢固了

4月20号, 也就是正式课的第三天:主要学把豆瓣电影top250的后9页能够自动化爬下来,前面的基础掌握了,爬剩下来的后9页电影就不是啥问题了

无非是把第一页的操作变成函数,再写一个for in循环,就O啦~

一共250个电影,一个不落。 哈哈哈,小白的第一个爬虫程序,特别开心~

为了巩固一下知识,我又依葫芦画瓢,爬了【豆瓣读书】Top250,逻辑都差不多,代码也差不多,改一下xpath(打枣子的杆儿~)就OK

然而我抓的标题的xpath出了点问题,出现不少\n的换行符和空格,虽然不是特别成功,但是内心也很开心,后面再学个正则表达式,把换行和空格处理一下,就更完美了

4月21号,也就是正式课的第四天,为了防止艾宾浩斯遗忘曲线在我充满了水声的小脑袋里加速进行,我又重新跑了一遍程序,结果....

竟然反复循环了第一页?难不成是豆瓣连夜把网页代码改了?我连吐槽的标题都想好了

震惊!某爬虫训练营在全员练习爬豆瓣之后,第二天豆瓣竟对他们做出这样的事...

哈哈哈,老标题党了,我再去捋一下逻辑,看看原因,期待能找到bug。

爬虫训练营已经第四天了,学习的过程磕磕绊绊却也一直在前进,期待在本期训练营之后遇见更美好的自己,加油~

周春

2021/04/26  阅读:37  主题:默认主题

作者介绍

周春