python 豆瓣爬虫:自动下载周星驰图片

效果演示

废话不多说,先看下代码和效果

代码


# coding:utf-8
import requests
import json

def download(src,id):
    dir = './'+str(id)+'.jpg'
    try:
        pic = requests.get(src,timeout=10)
    except requests.exceptions.ConnectionError:
        print('timeout error')
    fp= open(dir,'wb')
    #write
    fp.write(pic.content)
    #close
    fp.close()

query ='周星驰'
for i in  range(0,38958,20):
    url = 'https://www.douban.com/j/search_photo?q='+query+'&limit=20&start='+str(i)# open
    html = requests.get(url).text# get
    response = json.loads(html,encoding='utf-8')
    for image in response['images']:
        print(image['src'])# 测试路径
        download(image['src'],image['id'])

效果

星爷当年如此帅气
在这里插入图片描述

爬虫流程

打开网页

首先打开豆瓣官网,输入关键词‘周星驰’进行搜索,结果出来后,我们选择图片选项,注意选择图片前要打开chrome的开发者工具,然后我们可以活动请求的链接地址了
https://www.douban.com/j/search_photo?q=周星驰&limit=20&start=0
搜索结果
这里有三个参数q,limit,start.q表示搜索的关键词,limit表示每页的显示数量,start表示每页的起始序号,注意默认是从0开始

获取数据

json 结构
搜索结果是json 结果的数据,具体内容是一个数组images,数组的元素是字典

保存数据

def download(src,id):
    dir = './'+str(id)+'.jpg'
    try:
        pic = requests.get(src,timeout=10)
    except requests.exceptions.ConnectionError:
        print('timeout error')
    fp= open(dir,'wb')
    #write
    fp.write(pic.content)
    #close
    fp.close()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值