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

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

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

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

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

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

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

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

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

设计环境

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

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

时间: 2024-11-06 11:25:43

python——爬取图片(shutter图片网)的相关文章

Python爬取中国天气网天气

Python爬取中国天气网天气 基于requests库制作的爬虫. 使用方法:打开终端输入 "python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个"data.csv"文件,内容请参考链接:https://www.cnblogs.com/Rhythm-/p/9255190.html 运行效果: 源码: import sys import re import requests import webbrowser from

第一篇博客(python爬取小故事网并写入mysql)

前言: 这是一篇来自整理EVERNOTE的笔记所产生的小博客,实现功能主要为用广度优先算法爬取小故事网,爬满100个链接并写入mysql,虽然CS作为双学位已经修习了三年多了,但不仅理论知识一般,动手能力也很差,在学习的空余时间前前后后DEBUG了很多次,下面给出源代码及所遇到的BUG. 本博客参照代码及PROJECT来源:http://kexue.fm/archives/4385/ 源代码: 1 import requests as rq 2 import re 3 import codecs

python爬取暖享图片

目标网页:http://www.axlcg.com/wmxz/1.html 首先取得第一页每一个图集的url 可以看到图集的url实在ul class 为homeboy-ul clearfix line-dot底下的li中的a标签里面,所以我们要 一层一层地接近目标. allsoup = BeautifulSoup(allurldigit) # 得到解析后的html allpage = allsoup.find('ul', attrs={'class': 'homeboy-ul clearfix

Python 爬取煎蛋网妹子图片

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-08-24 10:17:28 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $Id$ 7 8 import requests 9 from bs4 import BeautifulSoup as bs

使用Python爬取煎蛋网妹纸图片

import urllib.request import os import os.path import re def dir(dir_name="images"):     """设定图片保存目录,基于当前程序运行目录"""     if os.path.isdir(dir_name):         os.chdir(dir_name)     else:         os.mkdir(dir_name)     

python爬取煎蛋网图片

py2版本: #-*- coding:utf-8 -*-#from __future__ import unicode_literimport urllib,urllib2,timeimport re,sys,osheaders={'Referer':'http://jandan.net/','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2

python 爬取煎蛋网图片

__author__ = mkdir(path):     os     path = path.strip()  path = path.rstrip()  mkfile = os.path.exists(path)     mkfile:         ()     :         os.makedirs(path)         () urllib, urllib2, re geturl(url):     file_lists = []     req = urllib2.Req

python爬取网页图片

在Python中使用正则表达式,一个小小的爬虫,抓取百科词条网页的jpg图片.下面就是我的代码,作为参考: #coding=utf-8 # __author__ = 'Hinfa' import re import os from urllib import request as req url='https://baike.baidu.com/item/%E5%B9%BF%E5%B7%9E/72101?fr=aladdin' path='Test//百科广州图片2' os.mkdir(path

Python 爬取美女图片,分目录多级存储

最近有个需求:下载https://mm.meiji2.com/网站的图片. 所以简单研究了一下爬虫. 在此整理一下结果,一为自己记录,二给后人一些方向. 爬取结果如图: 整体研究周期 2-3 天,看完之后,在加上看的时候或多或少也会自己搜到一些其他知识. 顺着看下来,应该会对爬虫技术有一个初步的认识. 大致的步骤: 分析页面,编写爬虫规则 下载图片,如果有分页,则分页 多页爬取,并且分目录保存到本地,多级存储. 应对反爬虫 以上就是学习的时候,看到的一些资料. 然后贴出一篇我自己写的,爬取的时候