码迷,mamicode.com
首页 > 编程语言 > 详细

python——爬取图片(shutter图片网)

时间:2019-12-22 12:42:58      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:urlopen   htm   dal   res   载器   网页   for   div   windows   

在本爬虫程序中共有三个模块:

1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况

2、爬虫模块:包含三个小模块,URL管理器、网页下载器、网页解析器。

(1)URL管理器:对需要爬取的URL和已经爬取过的URL进行管理,可以从URL管理器中取出一个待爬取的URL,传递给网页下载器。

(2)网页下载器:网页下载器将URL指定的网页下载下来,存储成一个字符串,传递给网页解析器。

(3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的数据,而且还可以解析出每一个网页指向其他网页的URL,这些URL被解析出来会补充进URL管理器

3、数据输出模块:存储爬取的图片

具体思路就是根据正则表达式,找到url,然后完成下载。

设计环境

 

IDESublime Text3

Python版本:python3.7

 

目标分析

目标:从https://www.shutterstock.com/zh/search/开始,爬取多个类别的前十张图片

(1)初始URL"https://www.shutterstock.com/zh/search/"

 

(2)词条页面URL格式:

https://www.shutterstock.com/zh/search?searchterm=Architecture&image_type=photo

 

(3)找到backgrounds,Architecture,business,kids,food,portrait,flowers,travel等类别标签名

代码如下:

 import requests
import re
import urllib.request
import time

headers = {

    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
}

url_base = https://www.shutterstock.com/zh/search/
imge_list = []

for i in [backgrounds,Architecture,business,kids,food,portrait,flowers,travel,skyline]:
    url = url_base+i+?image_type=photo

    res = requests.get(url,headers= headers).text
    
    # 为图片生成缩略图
    #"thumbnail":"(.*?)",
    cop = re.compile("thumbnail":"(.*?)",,re.S)
    result = re.findall(cop,res)[:10]
    for each in result:
        filename = each.split(/)[-1]
        #imge_list.append(each) #[90]

        response = urllib.request.urlopen(each)
        img = response.read()
        with open(filename,wb)as f:
            f.write(img)
        print("已下载:",each)

        time.sleep(5) # 休眠五秒

print("下载结束")

结果:

技术图片

 

 

遇到的问题


(1)爬取几张图片后,没有产生新的图片。原因:因为是外国网站,访问次数过多,会被限制访问。
解决方法:设置sleep函数,休眠几秒继续访问。


(2)英文页面不要随便翻译,会使源码标签显示错误!
解决方法:确认浏览器是否自动翻译过,可以获取一下他的页面,然后找想要的标签,不存在,则有两种情况,动态或者被翻译过。

python——爬取图片(shutter图片网)

标签:urlopen   htm   dal   res   载器   网页   for   div   windows   

原文地址:https://www.cnblogs.com/yezishen/p/12079321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!