python抓取动态网页(图片栏目名称给文件夹命名分类保存到电脑中的应用)

优采云 发布时间: 2022-03-08 23:16

  python抓取动态网页(图片栏目名称给文件夹命名分类保存到电脑中的应用)

  一、简介

  滴滴,请刷卡上车。昨天看到一个不错的图片分享网站——Petal,里面的图片质量还不错,于是用selenium+xpath爬下了它妹的专栏,并以图片专栏的名字命名文件夹并保存它到计算机。. 这个女孩的主页 te/beauty 是动态加载的。如果想要获取更多的内容,可以模拟一个下拉,这样就可以获得更多的图片资源。这个之前在爬虫里做过,但是因为网速不够快,抓了19个栏目,一共500多张美图,很满意。

  先看效果:

  Paste_Image.png

  

  Paste_Image.png

  二:运行环境

  IDE:Pycharm

  蟒蛇3.6

  lxml 3.7.2

  硒 3.4.0

  请求 2.12.4

  三:案例分析

  1.我这次开始用爬虫做的思路是:进入这个网页,获取图片栏的所有对应的url,然后进入每个网页,获取所有的图片。(如下所示)

  Paste_Image.png

  Paste_Image.png

  2. 但是爬取得到的图片分辨率是236x354,画质不够高,不过当时是下午1点30分以后,所以第二天又做了一个版本:在此基础上,输入每个A网页对应一个缩略图,然后像下图这样抓取一张高清图片。

  

  Paste_Image.png

  四:实战代码

  1.第一步,导入本爬虫所需的模块

  

  2.下面是设置webdriver的类型,即用什么浏览器进行仿真,可以用火狐查看仿真过程,也可以用PhantomJS,无头浏览器,快速获取资源,['- -load-images =false', '--disk-cache=true'] 这表示模拟浏览时不加载图片和缓存,所以运行速度会更快。WebDriverWait表示浏览器加载的最大等待时间为10秒,set_window_size可以设置模拟网页的大小。如果大小不合适,则不会加载某些 网站 资源。

  

  3.parser(url, param) 这个函数是用来解析网页的,这些代码后面会用到几次,所以直接写一个函数会让代码看起来更整洁有序。该函数有两个参数:一个是URL,另一个是显式等待表示的部分,可以是网页中的一些版块、按钮、图片等……

  

  4.下面的代码就是解析这个主页然后得到每一列的URL和列的名字。使用xpath获取栏目网页时,进入网页开发者模式后,如图操作。之后,需要使用列名在电脑中创建一个文件夹,所以需要在这个网页中获取列名。这里有一个问题。一些不符合文件命名规则的名称需要剔除。我在这里有*影响。

  

  

  Paste_Image.png

  5.之前已经获取了网页和栏目名称。这里我们需要分析一下该栏目的网页。进入专栏的网页后,只有一些缩略图。我们不要这些低分辨率的图片,所以需要重新输入。在每个缩略图中,解析网页以获得真正的高清图像 URL。还有一个比较可怜的地方,就是在一个列中,不同的图片以不同的DOM格式存储,所以我这样做

  

  这样就得到了两种 DOM 格式的图片地址,然后合并了两个地址列表。img_url +=img_url2 在本地创建文件夹 使用filename = 'image{}'.format(fileName) + str(i) + '.jpg' 表示文件与爬虫代码保存在同一目录image中,然后获得的图像 将其保存在图像中与之前获得的列名相同的文件夹中。

  

  五:总结

  这一次,爬虫继续练习使用 Selenium 和 xpath。在网页分析中也遇到了很多问题。只有不断地练习,才不会部分减少。当然,这次爬到了500多篇妹纸,还是挺吸睛的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线