知行编程网知行编程网  2022-03-07 09:00 知行编程网 隐藏边栏 |   抢沙发  6 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的粉丝第2篇原创投稿

阅读本文大概需要3分钟


    本篇主要面向于对Python爬虫感兴趣的零基础的同学,实例为下载煎蛋网中指定页面的妹子图。为什么选取这个网站,这个网站比较好爬取,适合入门好了,话不多说,让我们一步一步从零基础开始开始吧!


准备篇

所需工具

  • Python3.x

  • Pycharm

  • Chrome浏览器


1.打开Pycharm并且创建项目

配置Pycharm完成后应该是这个页面

零基础爬虫|一步一步实例教学


零基础爬虫|一步一步实例教学


零基础爬虫|一步一步实例教学


2.导入库

库是干什么的?Python之所以很好用就是因为他有许多自带的库以及第三方库,这些库可以直接提供方法给用户使用


例如导入math库,就可以用来计算平方根;导入time库,就可以计算程序运行时间等等功能。无需我们自己再次重写这些功能(也叫造轮子)


零基础爬虫|一步一步实例教学


这样就完成了所需库的导入,此外,由于第三方库你并没有安装后续会报错,这里提供一种简单的方法,Pycharm > Setting > 左上角搜索Project Interpreter


零基础爬虫|一步一步实例教学


检索上述你没有安装的库,点击绿色的+号后,搜索点击安装等待片刻即可.(当然也还有其他的很多安装库的方法,比如pip,Anaconda等)



动手篇

1.开始写代码

零基础爬虫|一步一步实例教学


按照图中的代码键入,右键  run'ooxx',下方就会显示

<span style="color: rgb(255, 41, 65);"><Response [200]></span>
来看第8行,等号右边的表示调用requests库的get方法,中间的参数填入我们所要访问的网址,然后将其整体赋予左边的wb_data,打印wb_data,返回状态码200,可以说只要状态码不是200的都不算正常访问。


注意:例如当网站识别出你为爬虫访问,就会返回404或者其他状态码,那么你就得不到想要的数据,就要用到一些反爬虫的策略



2.解析网页

1.解析网页这里我们用的是BeautifulSoup,在原来的代码下加上:

soup = BeautifulSoup(wb_data.text, 'lxml')
这时打印soup,我们就可以看见比较美观的网页源码了。


2.这时候我们需要找到我们需要下载的图片在网页中的位置!
首先添加两行代码:

img = soup.select('  ')  # select中填入的selector就是我们需要找的  

print(img)

了解一点html的同学都知道,网页是有结构的,如下图:


零基础爬虫|一步一步实例教学



3.可以看到图中那一列的图片都包含在网页中一个叫做ol.commentlist下面,我们右键图片,点击检查

零基础爬虫|一步一步实例教学



4.找到这个图片的地址

  • 那么我们的目标就是找到这个页面中所有ol.commentlist框架下的图片链接

  • 但是我们需要的是Python自己去匹配而不是我们去找,所以我们这样做


零基础爬虫|一步一步实例教学


如上图所示,我们所复制的selector
#comment-3535468 > div > div > div.text > p > img:nth-child(3)
就是这个元素所独有的地址,根据这个我们肯定是不能找到所有的图片链接的


5.所以我们需要做适当的调整,以匹配所有的图片链接

  • 前面的comment-数字代表不同的用户,所以肯定不能要

  • 后方的nth-child(3)表示img中第3个所以也不能要

  • 就是说我们需要去除所有表示唯一的标识才能匹配所有的元素

  • 最终我所找到的能匹配到所有图片的selector为div > div > div.text > p > img,将其加入刚才select.右键运行


零基础爬虫|一步一步实例教学


6.获取所有的链接src部分

  • 可以看到我们已经匹配了当前页面的所有img元素

  • 然后我们需要获取其中的图片链接,但并不规范,而且也无法使用

  • 用一个for循环获取所有的链接的"src"部分

零基础爬虫|一步一步实例教学


其中i.get('src')就是获取内部src处的文本
这里我们获取的链接没有头部,所以我们需要自行在循环中添加

零基础爬虫|一步一步实例教学



3.下载环节

接下来就是最激动人心的下载环节了,我们有两种方式:

  • 一种是获取所有的链接存放在列表中完成后依次下载

  • 另一种就是获取一个链接就开始下载,这里我们选择第二种

零基础爬虫|一步一步实例教学


urllib.request.urlretrieve方法如图:

  • 第一个参数是图片链接

  • 第二个是存放位置以及名字,其他的我们不管

这里选择E盘picture为例。并且加入计数器方便给图片命名。

零基础爬虫|一步一步实例教学


urllib.request.urlretrieve(pic_link, folder_path + '\' + str(n) + pic_link[-4:])

这里的文件名是以文件夹加上\然后文件名并且以链接的最后4个字符(用作后缀)给图片命名,就保证不会重名等问题。


4.最后,爬取多个页面

  • 现在!我们已经能够下载一页图片了,当然这还不够,我们的目标是多个页面

  • 所以这里我们的思路是将上面的全部代码打包成一个函数,将地址栏用format和range函数写成

  • urls = ['http://jandan.net/ooxx/page-{}'.format(str(i)) for i in range(起始页码,终止页码)]的形式

  • 再利用for循环遍历其中就可以下载我们所需页码的图片啦


这里我直接上最终的代码

零基础爬虫|一步一步实例教学


最终效果图:


零基础爬虫|一步一步实例教学



作者(解救吾小姐):感悟


这个教程适合的对象为零基础或者有一点点基础的想学爬虫无从下手的同学,所以用到的方法尽量少且简单


爬虫涉及到的知识点非常非常多,一篇文章远远说不够,所以这篇文章更多的我想是激发各位学爬虫的热情


我知道肯定文中有很多地方对于新手来说还是不太好理解,希望大家碰到问题学会使用搜索引擎,学会检索信息就能解决很多问题,并且收获更多,还有比如说debug,查看帮助文档,Python Console的使用等等

我也是个新手,爬虫之路也许才刚走到门槛上面,希望和大家共同进步!

零基础爬虫|一步一步实例教学欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧


量化交易人气文章

     用Python炒股|10年翻400倍的量化投资策略

用Python来分析股票|发现炒股软件里惊人内幕

用Python定投基金|看看巴菲特有坑我们吗?

全网爬取6500多只基金|看看哪家基金最强


 长按二维码,关注【菜鸟学python】


零基础爬虫|一步一步实例教学


来源 | 菜鸟学Python

作者 | xinxin

本文章为菜鸟学Python独家原创稿件,未经授权不得转载


本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享