python3爬虫之爬取百度图片

先搜一个图片,然后打开控制台,这个图片是动态加载的,没有页数的,所以一直滚动右边的滚动条,就会加载出新的内容,然后双击左下角生成的路径

双击后,出现下面的数据,红框框住的东西就是具体图片的路径

然后看上面生成的路径,一直滚动滚动条生成新的图片后,pn值就会变化.

pn的值是当前加载了多少图片,rn是每次加载,加载30张图片,可以自己手动把pn改为1,然后查看一下里面生成的图片就是第一张图片.

# -*- coding: UTF-8 -*-
import json
import urllib.request as urllib2
import requests
from time import strftime, localtime,sleep

import os
def getPages(keyword,num):
    keyword = urllib2.quote(keyword)
    url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord='+keyword+'&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word='+keyword+'&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&cg=wallpaper&pn='+num+'&rn=5s&gsm=1e&1534226537567='
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
    try:
        request = urllib2.Request(url, headers=headers)
        source_code = urllib2.urlopen(request,timeout=20).read()
        s_json=json.loads(source_code)
        return s_json['data']

    except urllib2.error.URLError:
        if hasattr(e,"code"):
            print (e.code)
    if hasattr(e,"reason"):
        print (e.reason)

def getImg(dataList, uipath):
    if not os.path.exists(uipath):  # 新建文件夹
        os.mkdir(uipath)
        print(uipath)
    x = 0
    for x in range(0,len(dataList)):
        try:
            path = str(dataList[x]['thumbURL'])

        except KeyError as e:
            print('没有找到路径')
            continue
        if path!=None:
            print('正在下载:%s' %path)
            try:
                ir = requests.get(path)
                #生成当前时间
                nowTime = str(strftime("%Y-%m-%d %H-%M-%S", localtime()))
                sleep(1)
                print('%s.jpg'%nowTime)
                open(uipath + '%s.jpg'%nowTime, 'wb').write(ir.content)
                x += 1
            except Exception as e:
                print ('路径显示有问题,无法加载图片')
                continue
        else:
            print('无路径,无法加载图片')
if __name__ == '__main__':
    num = '0'
    while True:
        #第一个参数是要搜索图片的关键字,第二个参数是加载几个图片,可以自己设置
        dataList = getPages('图片',num)
        getImg(dataList, 'D:/Documents/Desktop/pictures/')
        num2 = int(num)
        num2 += 5
        num = str(num2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值