python3爬虫——下载unsplash美图到本地

Saved unsplash_0.jpg
Saved unsplash_1.jpg
         ......
Saved unsplash_19.jpg
Saved unsplash_20.jpg    

Python 爬虫 下篇

 

网络爬虫就是差不多的意思,在互联网上爬来爬去的寻找你的精神食物。

 

图片 1

先随意感受一下这个网站:

图片 2

接下来开始对网页进行解析:

对您有所启发的话,欢迎扫下红包奥

图片 3

其中调用了单个网址下载函数downHtml

运行结果:

图片 4

图片 5

分页链接保存在class=link2的 div下

  图片 6

图片 7

 1 #!/usr/bin/env python
 2 # _*_ coding utf-8 _*_
 3 from bs4 import BeautifulSoup
 4 import requests
 5 
 6 i = 0
 7 url = 'https://unsplash.com/'
 8 html = requests.get(url)
 9 soup = BeautifulSoup(html.text, 'lxml')
10 
11 img_class = soup.find_all('div', {"class": "IEpfq"})        # 找到div里面有class = "IEpfq"的内容
12 
13 for img_list in img_class:
14     imgs = img_list.find_all('img')                         # 接着往下找到 img 标签
15     for img in imgs:
16         src = img['src']                                    # 以"src"为 key,找到 value
17         r = requests.get(src, stream=True)
18         image_name = 'unsplash_'   str(i)   '.jpg'          # 图片命名
19         i  = 1
20         with open('./img/%s' % image_name, 'wb') as file:   # 打开文件  
21             for chunk in r.iter_content(chunk_size=1024):   # 以chunk_size = 1024的长度进行遍历
22                 file.write(chunk)                           
23         print('Saved %s' % image_name)

python学习 二 04 爬一个图片网站-解析文件,获得所有图片链接

 可以看到,图片 img 在一个 div 的 tag 里面,而且 class = ”IEpfq“,不过那么多内容,虽然有点乱,但其实看 src = ” “ 就行了。

图片 8

 

下面,

但这只是一张图片的内容,得再看看其他的图片是不是一样。检查一下发现都是这样。这样子就算解析完成了。可以开始写代码了

我们将右侧的数字去掉,剩下的字符串作为这一组的类别

在该网页检查元素,选择其中一张图片查看它的代码

图片 9

最近发现一个网站www.unsplash.com ( 没有广告费哈,纯粹觉得不错 ),网页做得很美观,上面也都是一些免费的摄影照片,觉得很好看,就决定利用蹩脚的技能写个爬虫下载图片。

图片 10

写到一个文件中,有点乱,因此,我又新建了一个py文件,用以编写常用的函数,取名为common.py

多线程下载速度是比单线程要快一些

因为我把所有的常用函数,写到common.py中了,所以要导入这个文件

看源码可以发现,链接都是站内链接

上文提到,解析了首页,将所有的主分类链接保存到了本地文件中。

下面,为了免去每次下载网页的麻烦,我们一次性下载这些网页,并保存在本地中

图片 11

调用

def downImg(httpPath,localPath):

图片 12

下载并解压

2、解析DIV

为此我写了个函数

图片 13

输出所有的链接

开始获取HTML

Python爬虫学习 第一篇 准备

获得文件中,所有图片的链接列表,、

图片 14

通过上述代码,已经将链接下载到了本地。

我们再打开一个主链接看看

这是下载后的本地文件

下一步工作,下一节再说,现在还有些事,改天聊

下载下来后,后续我们会解析网页,获得图片地址,下载图片,本节主要完成前三步即可。

第五篇

Python安装

我这的目录结构是这样的

解析这个DIV,还要以这个DIV内容为参数,构造一个BeautifulSoup(以下简称为BS :) 注意绝不是鄙视的意思)对象,因为全篇只有一个menu 类型的DIV,所以所有类型都保存在上面解析的div_menu[0]中了,将这个对象强制转换为字符串类型做BS的参数

解析HTML

图片 15

这是common.py中写的下载函数

说白了,就是用来解析HTML或XML,从中提取有用数据的库。

还是用一个第三方库 Beautiful Soup

图片 16

是一组,保存着背景图片,那我们解析的时候,将这一组图片,单独的放在一个文件夹background中

由上图,可看到

图片 17

所有相关的网址,都下载到本地了,下面我们依次解析,获得图片链接,然后将图片链接保存起来。

python学习 二 06 爬一个图片网站-多线程方式下载

为此我写了个函数

为此,我又写了下面的函数

https://docs.python.org

定义一个函数,搞不懂,为什么python不用C语言那样的定义函数,也不用C语言的那样的循环和跳转,一时用惯了别的语言的人,很难一下子转过来。

图片 18

使用request获取了网页源码,下一步就是如何解析了,你如果用过C 等语言,你会发现很难找到顺心的网页解析库,但python在这方面却很擅长。

第一步,我们会下载主链接网页,保存在本地文件中。

#目录下的文件夹def GetAllSubDirs(dir,list):

图片 19

图片 20

蜘蛛结成网,在网上爬来爬去的寻找坠入网络中的食物。

python学习 二 05 爬一个图片网站-下载图片链接

获得目录下的txt文件路径,保存在txtFileList中。

图片 21

怎么样,惊喜不惊喜,简单不简单,使用其它语言,无法用这么简单的语句就获得html的信息。

安装好requests第三方库后,开始测试

多线程方式下载

这一过程的代码如下:

上文,我们将首页中主链接保存了起来,

理一理逻辑,先不去考虑细节,逻辑理清了,根据这个逻辑去实现细节就好了。我也是第一次使用python,也没有时间看文档,因为想获得图片素材,直接就想爬一个网站。

将所有的链接对应的网页,下载到本地

而且也有强大的中文支持

图片 22

直译为:漂亮的汤?

txtFileList=[]common.GetAllSubFile(tmpDir "htmls",txtFileList,"txt")

#目录下的文件def GetAllSubFile(dir,list,ext):

图片 23

第四篇

使用:

图片 24

DownThumbnail 是下载缩略图,因为这个网站上,目前或的的这些链接对应的是缩略图。

下一节介绍下多线程方式,下载高清图

图片 25

我们先定义一个变量,表示该站的域名

本节目的:解析下载到本地的文件,获得图片链接

这是写的将链表中的链接,保存到文件中去,

图片 26

获得分页链接

图片 27

图片 28

可以看到,第一个 a标签,是没有href属性的,所以,会输出None,其它a标签,正常输出

运行后,就会发现,可以下载了

图片 29

第一步,读取所有的子文件夹

目录文件相关的,要引入os

图片 30

本节思路

python学习 二 03 爬一个图片网站-获得所有分页网址

图片 31

Python 爬虫 上篇

本文由威尼斯人棋牌发布于计算机教程,转载请注明出处:python3爬虫——下载unsplash美图到本地