右击鼠标查看源代码,我们可以看到,我们想要爬取的链接就是这样的
小编给大家推荐一个学习氛围超好的地方,Python学业交流:103456743!四千多小伙伴了吧!所以看到了快点进来吧,不然就满了!里面资料都是大家贡献的,几百个G了!什么PDF,零基础入门,爬虫,web 数据分析都是有视频加源码的。而已里面好多学生,工作了的,遇到bug了可以寻求帮助,遇到解决不了的问题也可以和大家交流,从而解决自己多时的问题。这也是一件乐事,我们不做外包,只为共同进步!
在这里我们要先导入urllib这个模块,使用import导入
这里其实是两个方法,一个open一个read,open用于从网站上获取网页代码,read是为了读出来好打印
我们可以得到上面结果,但是我们发现字符似乎成了乱码,为了找到原因,我们再来看看源码
我们似乎找到了原因,网页使用的是gb2312进行编码的,但是我们是使用utf-8的,所以导致的乱码,对这方面不解的同学可以去找一些编码的知识看看。下面我们用一个编码转换来尝试获取正确的编码
通过对pageContent的类型分析,我们知道这是一个字符串类型
这样我们就可以使用字符串中的find函数了,我们需要对find函数有一个了解
函数中说明了从字符串中寻找目标字符,返回找到的第一个下标,如果没有找到就返回-1,同时可以设置开始寻找的位置和结束的位置。
我们再看到文本
这里我们采取了一个切片操作,这时我们发现链接其实已经爬取到了,但是还是有些不完美,我们再来完善一下他。
我们来对比一下我们的网页上的第一个链接
文件下载是成功了,我们来打开看看。这个地方要注意地址栏的链接
获取后面的链接我们能不能如法炮制呢,我们先来试试。我们把代码写成下面那样
然后我们现在来试试
结果我们发现我们试图获取的三条链接都是一样的,可以看出,这还是本页的第一篇文章的链接。证明我们这种方法是不可行的。我们回想一下上一节课我们讲的定位链接使用函数
这里我们要先定义一个列表对获取的链接进行存储,因为是10篇文章,所以这里定义的就是一个10个元素的空的字符串列表。下面是我们循环的代码块。
这里结束一下我们为什么不是从0开始进行赋值,大家注意到没有,我们是从第二条文章链接看是循环的,那么第一条的文章链接在哪呢?当然是存储在了列表的第一个位置,也就是下标为0的那个位置了,关于range后面的范围,大家知道是包下不包上的就行了,就是说在range(x,y)的循环中,循环是从x开始,到y-1结束的,不包括y本身。我们现在来运行一下我们的代码看看是否获取的是正确的链接。
然后再次对比html
这时我们发现我们获取了链接是正确的,那么我们就要开始进行下载了。还是上一节课的代码,不过我们进行修改一些地方。因为上次只是单个链接,这次我们有一个链接列表,所以我们应该采取循环进行下载。我们要对下载重新写一个循环了。
我们现在来试试,这是上一节课我们成功下载的第一篇文章
我们现在删掉他。
现在我们看到文件夹里面是什么都没有的,我们现在开始下载。
我们这就下载完了,我打开其中一个看看。还是注意地址栏上面的链接。
可以看出我们获取的文章是正确的。因为篇幅有限,我就不一个一个去打开截图了,大家自己可以根据自己实际环境敲一下代码。
谢谢阅读,本文是一名毕业待业的大学生!PG。我相信很快就能找到自己满意的工作了!
领取专属 10元无门槛券
私享最新 技术干货