前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scrapy爬取搜狗图片

scrapy爬取搜狗图片

作者头像
溪初桾
发布2020-03-12 16:18:46
8450
发布2020-03-12 16:18:46
举报
文章被收录于专栏:溪溪技术专栏溪溪技术专栏
代码语言:javascript
复制
# -*- coding: utf-8 -*-
from urllib.parse import urlencode
import json
import scrapy
import os
import re
import urllib.request

class SougouimgSpider(scrapy.Spider):
    name = 'sougouimg'
    allowed_domains = ['pic.sogou.com']
    start_urls = ['https://pic.sogou.com/']

    def parse(self, response):
        page = 1
        endpage = 5     # 终点页
        keywords = r'哆啦A梦'
        for page in range(1,endpage):
            yield scrapy.Request(self.geturl(keywords,page), callback=self.sougou)



    def sougou(self,response):
        # 获取get参数
        # print(response.text)
        data = response.text
        js = json.loads(data)
        for list in js['items']:
            img_url = list['pic_url']
            self.savve(img_url)

    def geturl(self, keywords, page):     # 传入关键字,页码
        param = {
            'query': keywords,
            'mode': '1',
            'start': page*48,
            'reqType': 'ajax',
            'reqFrom': 'result',
            'tn': '0'
        }

        ps = urlencode(param)
        url = 'https://pic.sogou.com/pics?' + ps
        return url

    def savve(self,img_url):
        path = os.path.dirname(os.path.abspath(__file__))+"\\搜狗图片"

        dir = os.path.exists(path)

        if not dir:
            os.makedirs(path)
        reg = re.compile('[^\/]+$')
        # 保存图片
        title= reg.findall(img_url)[0]
        sougou = path + "\\" + title
        try:
            urllib.request.urlretrieve(img_url, sougou)
        except Exception as e:
            print(title+"下载失败")
        finally:
            print(title+"下载完毕")

by浅枫沐雪

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档