Python3批量爬取美女照片并保存到本地(二)

Python3批量爬取美女照片并保存到本地(二)

上一波写错了,很尴尬,就能爬显示的一部分照片,网站有限制,从上波的爬取可以看出来,返回的json中只有一部分图片,其余的需要登录才能下载,我们这次通过爆破路径达到不注册登录批量下载的目的。

直接上代码了,路径1:

目标路径https://www.0xu.cn/gallery/ctmn/1
在这里插入图片描述

import requests
import json
import re
import os
number='1'
int(number)
path='qcmn/'
url='https://www.0xu.cn/gallery/'+path+number

html=requests.get(url)
int(number)
html=html.text
# print(number)
#print(html.text)
pattern=re.compile(r'let\sgallery\s=\s(.*)')
find_json=pattern.findall(html)
find_json=str(find_json)
find_json=find_json.replace("'",'').replace(";\\r",'')

#转为字典格式,不然会报错,str格式没法for循环遍历
find_json=json.loads(find_json)
# print(find_json)
# print(type(find_json))
##for循环遍历列表
for pic in find_json:
    ##取出pictures这一组数据
    pic1=pic['pictures']
    for pic2 in pic1:
        pic_url=pic2['img_url']
        print(pic_url)




运行结果:

在这里插入图片描述

接下来for循环遍历1-3000路径就OK拉,直接嵌套到循环里就可以了

import requests
import json
import re
import os
lujin=3000
path = 'qcmn/'
for i in range(1,3000):
    number =str(i)
    int(number)
    path=path
    url = 'https://www.0xu.cn/gallery/' + path + number

运行结果:

在这里插入图片描述

保存到本地的方法还和昨天一样

   ##for循环遍历列表
        for pic in find_json:
            ##取出pictures这一组数据
            pic1 = pic['pictures']
            for pic2 in pic1:

                pic_url = pic2['img_url']
                print(pic_url)
                n=n+1
                try:
                    pic = requests.get(pic_url, timeout=10)
                    local_lujin = './images/'
                    if not os.path.isdir(local_lujin):
                        os.makedirs(local_lujin)

                    with open(local_lujin + '{0}.jpg'.format(str(n)), "wb")  as f:

                        print("正在下载第{0}张照片:".format(str(n)))

                        f.write(pic.content)
                        f.close()


                except requests.exceptions.ConnectionError:
                    print('当前图片无法下载')
                    continue

刚才遍历的1-3000是第四层路径,最后再来个for循环,把第三层路径遍历一波,就几种类型

在这里插入图片描述

最终达到批量下载全站图片的目的

最后热爱网络安全和python的小伙伴可以关注下我的公众号。
完整的代码放在公众号了,回复“爬图片1”获得。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值