我是小树啦 发表于 2021-7-22 10:09:30

有趣

东Kaino 发表于 2021-7-22 11:54:44

666

fuzx 发表于 2021-7-22 15:30:36

学习

Hanser初号机 发表于 2021-7-22 15:52:11

666

chuangyuemx 发表于 2021-7-22 21:32:38

shawnlei 发表于 2020-3-11 17:20
大佬怎么都是failed呀?我是小白

由于网址变化,之前的代码也需要跟着变化,最新可用代码如下:

import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:34:53

现在是21年7月23日,由于网址变化,我在楼主的代码基础上更新如下即可使用:

import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:39:07

yu411038522 发表于 2021-7-9 15:34
发生异常: ConnectionError
HTTPSConnectionPool(host='mtl.gzhuibei.com', port=443): Max retries excee ...

现在是21年7月,由于网站改变,我在楼主代码基础上更新后又可以重新下载了。
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:40:18

时间守护 发表于 2021-6-30 10:53
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/网页2.py", line 1, in
...

现在是21年7月,由于网站变化,我在楼主代码基础上更新代码后可以用啦!代码如下:
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:44:17

tzhang56 发表于 2020-3-12 01:43
谢谢提出这个问题。你在D盘先新建一个‘pics’的文件夹,然后再运行程序试试。

现在是2021年7月23日,由于网站变化,我在楼主的代码基础上更改代码后可以重新下载了! 代码如下
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1             #每张照片的具体网址
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:45:53

时间守护 发表于 2021-6-30 10:53
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/网页2.py", line 1, in
...

现在是2021年7月23日,由于网站变化,我在楼主的代码基础上更改代码后可以重新下载了! 代码如下
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1             #每张照片的具体网址
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:46:31

fumun 发表于 2021-5-14 20:03
网站现在应该和当时不一样了

现在是2021年7月23日,由于网站变化,我在楼主的代码基础上更改代码后可以重新下载了! 代码如下
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1             #每张照片的具体网址
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

chuangyuemx 发表于 2021-7-22 21:47:52

罗同学 发表于 2020-10-12 17:48
好像网站挂了诶

现在是2021年7月23日,由于网站变化,我在楼主的代码基础上更改代码后可以重新下载了! 代码如下
import requests
import urllib.request
import os
from bs4 import BeautifulSoup as bs      # 由于网站变化,需要导入BeauifulSoup来下载图片
import re                              # 由于网站变化,需要导入're'正则表达式来下载图片
n=int(input('起始写真编号:'))
amount = int(input('希望获取多少套写真?\n:'))
amount -= 1                              # pyhon众所周知,从‘0’开始
location = "D://pics"
if not os.path.exists(location):
    os.mkdir(location)                   # 在D盘新建文件夹pics
   
url_0 = "http://www.gzhuibei.com/html/"# 写真集网址前半部分
url_01 = "http://www.gzhuibei.com"       # 写真集网址具体图片地址前半部分

while amount>=0:
    url0 = url_0 + str(n+amount)         # 具体写真集编号网址
   
    for num in range(10):                # 一个写真集里有很多图片,这里设置最多爬10张
      if num == 0:                     # 根据网址规律,得出每一套写真第一张照片网址
            url = url0 + ".html"         
      else:                            # 根据网址规律,得出第2张后的每张写真图网址
            url = url0 + "_" + str(num+1) + ".html"                  
      
      try:                           # 如果下载超出该套写真的图片数则提示并停止该套写真下载
            resp = urllib.request.urlopen(url)
      except :
            print("这套写真只有这么多图片啦!")
            break
      
      html = resp.read().decode("utf-8")
      soup = bs(html,"html.parser")
      list1 = []                     # 用于提取每张图片在服务器上的具体地址
      for each in soup.find_all('img'):
            list1.append(each["src"])
      
      root = location+"//"+ url.split('/')[-2]+"//"         #保存写真路径
      path = root + str(n+amount) + "_" + str(num+1)+".jpg"   #写真集内图片用序号命名
      
      try:
            if not os.path.exists(root):
                os.mkdir(root)                         #没有文件夹则创建新文件夹
            if not os.path.exists(path):
                url_02 = url_01 + list1             #每张照片的具体网址
                r = requests.get(url_02)               #爬取网页
               
                if r.status_code == 200:               #判断图片是否存在,存在则保存
                  with open(path, 'wb') as f:
                        f.write(r.content)
                        f.close()
                        print("file saved successfully!")
                else:                                  #不存在则跳过
                  pass
            else:
                print("file already exists!")
      except:
            print("failed!")
            
    amount-=1

hjs2231616 发表于 2021-7-22 22:03:00

yyds

aczsl 发表于 2021-7-22 22:47:26

前来膜拜

luckybuyi 发表于 2021-7-23 11:03:51

{:5_90:}

ryanzon 发表于 2021-8-12 15:07:37

郭德纲   古典风格撒

棺材学弟 发表于 2021-8-12 15:43:49

看看{:10_257:}

木头不说话 发表于 2021-8-12 16:25:21

{:5_109:}

逆流的风xyz 发表于 2021-8-12 18:50:53

666

gjc2010gys 发表于 2021-8-12 18:56:36

其实只是来看看网址的。
页: 26 27 28 29 30 31 32 33 34 35 [36] 37 38 39 40 41
查看完整版本: Python批量爬取写真集