www.656969.com
当前位置:主页 > www.656969.com >
Python抓取网络高清美图
发布日期:2019-10-09 06:02   来源:未知   阅读: 次 

  Python抓取网络高清美图_计算机软件及应用_IT/计算机_专业资料。Python 抓取网络高清美图 一:前言 嘀嘀嘀,上车请刷卡。昨天看到了不错的图片分享网—— 花瓣 ,里面的 图片质量还不错,所以利用 selenium+xpath 我把它的妹子的栏目下爬取了下 来,

  Python 抓取网络高清美图 一:前言 嘀嘀嘀,上车请刷卡。昨天看到了不错的图片分享网—— 花瓣 ,里面的 图片质量还不错,所以利用 selenium+xpath 我把它的妹子的栏目下爬取了下 来,以图片栏目名称给文件夹命名分类保存到电脑中。这个妹子主页 huaban/boards/favorite/beauty 是动态加载的,如果想获取更多内容可以模拟 下拉,这样就可以更多的图片资源。这种之前爬虫中也做过,但是因为网速 不够快所以我就抓了 19 个栏目,一共 500 多张美图,也已经很满意了。 先看看效果: Paste_Image.png Paste_Image.png 二:运行环境 IDE:Pycharm Python3.6 lxml 3.7.2 Selenium 3.4.0 requests 2.12.4 三:实例分析 1.这次爬虫我开始做的思路是:进入这个网页 huaban/boards/favorite/beauty 然后来获取所有的图片栏目对应网址,然后进 入每一个网页中去获取全部图片。(如下图所示) Paste_Image.png Paste_Image.png 2.但是爬取获取的图片分辨率是 236x354,图片质量不够高,但是那个时 候已经是晚上 1 点 30 之后了,所以第二天做了另一个版本:在这个基础上再 进入每个缩略图对应的网页,再抓取像下面这样高清的图片。 Paste_Image.png 四:实战代码 1.第一步导入本次爬虫需要的模块 2.下面是设置 webdriver 的种类,就是使用什幺浏览器进行模拟,可以使 用火狐来看它模拟的过程,也可以是无头浏览器 PhantomJS 来快速获取资 源,[--load-images=false, --disk-cache=true]这个意思是 模拟浏览的时候不加载图片和缓存,这样运行速度会加快一些。 WebDriverWait 标明最大等待浏览器加载为 10 秒,set_window_size 可以设置 一下模拟浏览网页的大小。有些网站如果大小不到位,那幺一些资源就不加 载出来。 3.parser(url, param)这个函数用来解析网页,后面有几次都用用到这些代 码,所以直接写一个函数会让代码看起来更整洁有序。函数有两个参数:一 个是网址,另一个是显性等待代表的部分,这个可以是网页中的某些板块, 按钮,图片等等... 4.下面的代码就是解析本次主页面 huaban/boards/favorite/beauty/ 然后获取 到每个栏目的网址和栏目的名称,使用 xpath 来获取栏目的网页时,进入网 页开发者模式后,如图所示进行操作。之后需要用栏目名称在电脑中建立文 件夹,所以在这个网页中要获取到栏目的名称,这里遇到一个问题,一些名 称不符合文件命名规则要剔除,我这里就是一个 * 影响了。 Paste_Image.png 5.前面已经获取到栏目的网页和栏目的名称,这里就需要对栏目的网页分 析,今年5月,菜鸟联合申通、韵达、圆通,进入栏目网页后,生财有道网挂牌六肖今只是一些缩略图,我们不想要这些低分辨率的图片, 所以要再进入每个缩略图中,解析网页获取到真正的高清图片网址。这里也 有一个地方比较坑人,就是一个栏目中,不同的图片存放 dom 格式不一样, 所以我这样做 这就把两种 dom 格式中的图片地址都获取了,然后把两个地址 list 合并一 下。 img_url +=img_url2 在本地创建文件夹使用 filename = image\{}\.format(fileName) + str(i) + .jpg 表示文件保存 在与这个爬虫代码同级目录 image 下,然后获取的图片保存在 image 中按照 之前获取的栏目名称的文件夹中。 五:总结 这次爬虫继续练习了 Selenium 和 xpath 的使用,在网页分析的时候也遇到 很多问题,只有不断练习才能把自己不会部分减少,当然这次爬取了 500 多 张妹纸还是挺养眼的。