python爬虫保存进度_P23-25《Python爬虫技术5天速成…》学习过程笔记14(超详细记录)...

23a4c9f9ef4b364276a05081b771fed5.png

对应原视频 第23集  正则提取 & 第24集  标签解析 & 第25集  保存数据到Excel:dadbe605ccd72f1818024528ed665523.png

第20集  补充BeautifulSoup(上)

第21集  补充BeautifulSoup(下)

第22集  补充Re(正则表达式)

(上面这3集没遇什么困难,都是知识点了解,大纲也不重要,直接看视频就很好很有条理。这3集的笔记直接原文档放到网盘里,链接评论区。)

P23

--笔记说明

--我的疑问1

--代码细节:getData这个函数的参数有两个

--datalist参数引发的感想

P24

--我的疑问2

--点星.*报错原因

--概况里的\xa0不用去掉

p25

--我的错误1:xlwt.Workbook(encoding="utf-8") 里,Workbook的W要大写

--excel文件打开的疑惑

a739ef1ba60c42f0cacc586144e75f71.png

P23 正则提取

23:17

说明:

接下来更多的是实操内容了,当然也有一些知识点。接下来就不记录太多太详细了,主要是记录我遇到的报错、发现、想法这些。遇到不懂的更好是直接看老师的实操和讲解,这个更高效。前面更多的是基础的知识和概念,记忆及理解为主。就作此说明。

0:37

a739ef1ba60c42f0cacc586144e75f71.png

20201119

14:46

视频20分钟左右,打印出找到的电影详情链接,为什么那些属性没有被打印出来的?

弹幕:re.findall 方法的提示有说明,re.findall 将返回非重叠的匹配结果。有分组(也就是用圆括号括起来的部分,在正则中也成为字。)

a739ef1ba60c42f0cacc586144e75f71.png

temp:临时的,temporary。

href:Hypertext Reference,表示超文本引用。常见于link,a等元素。

src:source,表示引入。常见于img,script,iframe等元素。

(来源:公众号:哥伦布日记 20201003发布:HTML中href与src的区别)

a739ef1ba60c42f0cacc586144e75f71.png

--疑问1:

视频26:48分,获取电影图片链接部分,弹幕说:> 千万别加,不然导入数据库会报错。

为什么呢?

inq:介绍。

a739ef1ba60c42f0cacc586144e75f71.png

--代码细节:getData这个函数的参数有两个

注意,这里的getData这个函数的参数有两个,之前是一个的,老师没录屏后自己加上了,所以视频没有加上参数的展示。

我一开始没注意到,一直保留着课程进度而有的东西。后面注意到了,加上了。

老师一开始没用原来的savepath参数传进去,我自己加了。但结果还是不成功,因为datalist参数没传进去,我发现,又自己加上了。这都不是从老师的视频发现的,是自己发现的。

我改好后才发现,原来过程中老师的一直有两个参数。因为是在视频之外修改好的一点点小地方,录屏时没有说,但改了的地方一直都在展示着。

只是我根本没注意到,保存数据的视频那么长,我竟一点都没注意到。

我就知道,因为我看过,因为我是每一步都跟着老师的做的,所以我写的代码和老师写的是一样的。所以我根本就不会再去注意,老师是否有哪个小地方改了,视频里能看到,但只是没说而已。

我,真的,学这个python,过程记录中就出现过很多次这个现象了,不用了解我的其它方面,这个证据这些现象已经很多很充分了,我对已经知道的或者我认为我已经知道的东西不会多上心。

前面的视频老师写的代码,和下一个视频里的代码,我没有发现差异。这个培养了我的思维,就是:老师怎么写的,我就怎么写,我的和老师的是一样的。

前面一直都是这个思维。到学if name main主函数开始(16集),后面都有发现自己照着老师一模一样写的,但运行出来就是有时候不同。我才会去检查自己写的代码,是哪里错了不一样了?自己看一遍没有发现,才会去怀疑和老师写的不一样,但是我没有发现本节写的新代码哪里有不一样的(你看我首先怀疑的还是新写的代码是不是哪里不一样,不是去怀疑前面视频写的旧的代码,我和老师写的是一样的这个想法一直都很根深,贯穿前面看的所有视频集数,绝对不会随便怀疑)。

回去看我怀疑可能不一样的地方,即不是本节视频教的代码,而是本节视频没有教写的地方。因为我有信心我有很仔细看老师当前写的,我写的几乎不会和老师现在教的有出入,所以更可能是本节没有说的地方,也就是开始写本节视频的代码之前,这个文件里已经存在的前几节视频学的代码。这时候,就会发现不同,老师的代码例如前一节视频举例用的一两句代码,老师在不录视频的时候自己整理修改或删除了一点,而我还保留着,我以为还是和老师的一模一样。

从if name main开始,后面也有一丢丢一些老师自己改了的地方,例如一些描述改了一点,一些小例子删了,一些参数加上了,都有。

报错后,我自己调试改好成功了,再回去看是不是老师这里自己改了,果然老师的这个地方不是和上节视频的那样,这里老师在录本节视频前的幕后,自己加上了一个参数(getData函数里的datalist参数),本节视频中一直在屏幕上展示着,但我就是一直没发现没注意。

我是在参数(datalist)这个地方,并基于前面的修改现象(if name main开始遇到的几个,当时遇到了但想法还是没有变化的),我对同样的代码结果却不同,有了不同的看法。我的看法变成了:我的代码有哪里是不一样的,但是我没注意到。之前的是我的代码是一样的啊为什么结果不一样。

我是这样的,那我就是这样的,我无意识就这么做。我的警觉和自省,帮我发现我是怎样的人,让我自己知道我自己是怎样的,让我自己知道我自己在怎么做。

因为无意识这样做的我,我是这样的,我并不知道。我是意识不到我自己是这样的,我也意识不到我在这样做。自省就是这么一个作用,让我自己知道自己。

你想一想,明明我在这样做,我却不知道自己在这样做,多气人啊!我是我的,但我对自己一点控制权都没有,我连自己在这样做的知情权都被无意识抹杀了,这想想都让人很烦躁啊。我又不是闹钟的发条,发条自己在那里做着却从来不知道自己在做着。我是人啊,不是没有意识的东西啊,很讨厌啊这种感觉,对自己在做了什么,自己是怎样的,我是一个怎样的人,我应该,我应该,比任何人都知道的更多才对,我应该对我知道的更多的,现在我连自己做了什么都意识不到,很丢脸诶,这是我,是我,是我自己,不是a,不是b,也不是c,是我自己啊。所以我很讨厌自己不知道自己是怎样的,很讨厌傻傻地一直在那样做却意识不到自己在干什么,这想想都让人觉得好烦啊。

所以我会回忆自己的行为,我会自省,就会突然发现我一直是这样的,我一直在这样做,我一直都没有意识到。

无意识的行为是发现不了的,不然叫什么无意识是吧,自省的作用虽然是延后的,是发生之后的马后炮似的,确实,过去的行为永远无法改变,但是,可以影响未来的行为。

在没有干扰没有波动没有影响的时间过程,过去、现在和未来很相似很重复,昨天我这样做了,今天我这样做了,明天大体我也会这样做。

但是,当我自省,当我意识到了,当我发现了,我关心,昨天我这样做了,今天我这样做了,明天我变得未知。未知,就会有无限种可能。

我说过,人几乎改变不了本性,我是什么样的人,我一直就是什么样的人。但是,我也说过,人是可以改变的,只要你意识到了,只要你上心你重视,你说要改变是真心的,你就可以改,只要你没忘记,只要你没让这些重新回到无意识层,只要你一直记得,你的行为就是由你的意识来操控的,当你是由你自己的意识来操控,那你是怎么样的人,你说了算。

所以我也说,这里面有很美妙的乐趣,当你在这样做,你就会在某一天突然发现,你忘记了自己说要这样改的,在忘记的时间里,你的所作所为,和你说要改之前的心理及行为逻辑,简直一分毫不差,那种毛骨悚然的感觉,你会跟自己说,我tm从来都是这样子的。同样的也有我tm太好人了吧,我说了我更关注自己想要改的方面。

无意识很强大,很容易把你送回原来的你,一个月,一年,十年,时间越久可能你会被自己给迷惑,坚持再久有些你还是改变不了你的。但这有什么关系,我又不是要当完人神仙,我想改,那我这整段时间的行为都在变化,我又不想了,那就不继续了呗。我意识到我还是这样的,但我继续保持意识到一直告诉自己记得,那就继续呀,这些都有什么关系。

记住,无意识,明天大体是重复的,意识到,明天是未知的。能来到这个未知的路口,就已经很诱人了。因为未知,有无限种可能啊。

a739ef1ba60c42f0cacc586144e75f71.png

P24  标签解析

--我的疑问2

在中文名外文名判断处,不明白if (len(titles) == 2): 这里为什么要在len外面加个括号,为什么要括起来呢?

写成这样不也一样吗:if len(titles) == 2:

outer:外部的,外面的。

\s:space,空格。

a739ef1ba60c42f0cacc586144e75f71.png

--点星.*报错原因

检查了imgSrc的list index out of range的问题,是定义规则时点星.*这里出错了,估计是点.写错了,可能是中英文问题。我还没很明确注意到,只是重新试着输了一遍这个点.,输的时候我确定我看着它显示是英文输入法输入的,然后很快点了运行,它就好了,顺利爬取。所以我都没看清,问题就被我解决了。我只能用可能是因为这样原因而报错的描述,来记录。19:34

a739ef1ba60c42f0cacc586144e75f71.png

--概况里的\xa0不用去掉

19:55

打印爬取一页的结果看到,很多空格啊杠/啊转行啊什么的都处理得很漂亮了,但是有一个这个东西,\xa0,它还是在概况里没去掉。

啊,对了,看弹幕是是空格的意思,概况里面是一个词一个词的描述,去掉字就连在一起了,不好看了。现在这么写着,突然发现这个\xa0需要有,不是应该去掉的东西。要去掉,就去掉其中一个:/ 或\xa0,都是分隔的作用。既然已经去掉/了,现在不用考虑\xa0的问题了。

写着写着,认识更加具体和有联系性了,因为一边写一边脑子里出现的是\xa0这个东西在网页上显示的样子、在复制过去的html中显示的样子、在打印出来的结果中显示的样子,以及弹幕对\xa0含义的普及,突然发现不用去掉。

a739ef1ba60c42f0cacc586144e75f71.png

P25  保存数据到Excel

--我的错误1:

import xlwt

workbook = xlwt.workbook(encoding="utf-8")  # 创建workbook对象。

worksheet = workbook.add_sheet('sheet1')  # 创建工作表。

worksheet.write(0, 0, "hello")# 写入数据:第一个参数是 行;第二个参数是 列;第三个是写入的内容。

workbook.save("students.xls")  # 保存数据表。

结果:eb4e8f4e9a1e1ad0b2c9222b8ece279c.png

看出哪里错误了吗?

是这里:

workbook = xlwt.workbook(encoding="utf-8")  # 创建workbook对象。

后面的workbook首字母要大写才对。改好之后就好了,成功创建students.xls文件,成功写入hello。

--excel文件打开的疑惑

但是我双击没有在pycharm里打开,而是在MS Excel这个软件上打开。为什么呢?我看老师的是在pycharm里就打开的,是要连接还是什么?老师那样的看起来更方便,不用打开那么多个软件。

诶,后面看老师打开九九乘法表的时候,不是在pycharm中打开这个新建的excel表的,也是在外面打开的。可能老师电脑运行很快,我看错了。

a739ef1ba60c42f0cacc586144e75f71.png

创建一个excel文件之后,如果打开着,又要新写入数据保存,那么保存的时候要先关闭打开的文件,再保存,不然会报错,保存不了。

按住ctrl然后点代码中的某个调用的函数,会快速跳转到定义的位置。

a739ef1ba60c42f0cacc586144e75f71.png

样式的压缩效果。

style_compression=0

老师没有解释,不知道干嘛用的。需要自己去网上搜索。我还是懒了。我继续听。

a739ef1ba60c42f0cacc586144e75f71.png

cell_overwrite_ok=True

cell细胞,代表单元。当有新的数据写入的时候,可以覆盖掉以前的,重新写入。但是默认就是可以覆盖重新写入的。写入hello后,后面又写入九九乘法表,hello就被覆盖掉了,所以它是默认新的可以覆盖旧的。

(20201204测试我自己爬取的保存到excel文件,报错了,因为没有写可以覆盖写入这个语句,看来好像又不是默认可以覆盖写入的,还是得加上这个语句。bb989af17bfd3397d00c06ec34766d27.png

)

col:列,column。

a739ef1ba60c42f0cacc586144e75f71.png

噢耶,爬取成功,好开心。后面我再回去看看,把超时处理和休眠也加进去,以防以后爬取很多网页没设置好导致被拒的情况。今天到这,下面向数据可视化迈进!!!!!!我还是先去把它们加上了,趁热打铁,现在比较熟悉,后面再弄估计是低效的。加好了,没让超时和休眠生效,注释着,因为豆瓣这个10页不太多,以后爬其它的看情况再让它们生效就好了。22:35

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值