python读取文件夹下文件名称唯美_Python爬虫,高清美图我全都要!爬取你想要的,嘿嘿嘿...

select = 'div#main div.list ul li a'

imgUrls = screen(url, select)

通过这两行代码获取的列表中的值,形如此:星空 女孩 观望 唯美夜景壁纸星空 女孩 观望 唯美夜景壁纸需要对获取的列表进行处理

获取a标签中的href属性值,并将其转化为绝对地址,这是第一次跳转所需要的url

第六步:定位到 1920 × 1080 分辨率图片# 定位到 1920 1080 分辨率图片

def handleImgs(links, path):

for link in links:

href = link.get('href')

if(href == 'http://pic.netbian.com/'): # 过滤图片广告

continue

# 第一次跳转

if('http://' in href): # 有极个别图片不提供正确的相对地址

url = href

else:

url = index + href

select = 'div#main div.endpage div.pic div.pic-down a'

link = screen(url, select)

if(link == []):

print(url + ' 无此图片,爬取失败')

continue

href = link[0].get('href')

# 第二次跳转

url = index + href

# 获取到图片了

select = 'div#main table a img'

link = screen(url, select)

if(link == []):

print(url + " 该图片需要登录才能爬取,爬取失败")

continue

name = link[0].get('alt').replace('\t', '').replace('|', '').replace(':', '').replace('\\', '').replace('/', '').replace('*', '').replace('?', '').replace('"', '').replace('', '')

print(name) # 输出下载图片的文件名

src = link[0].get('src')

if(requests.get(src).status_code == 404):

print(url + ' 该图片下载链接404,爬取失败')

print()

continue

print()

download(src, name, path)

time.sleep(interval)

第七步:下载图片# 下载操作

def download(src, name, path):

if(isinstance(src, str)):

response = requests.get(src)

path = path + '/' + name + '.jpg'

while(os.path.exists(path)): # 若文件名重复

path = path.split(".")[0] + str(random.randint(2, 17)) + '.' + path.split(".")[1]

with open(path,'wb') as pic:

for chunk in response.iter_content(128):

pic.write(chunk)

目录五:代码的容错能力

一:过滤图片广告if(href == 'http://pic.netbian.com/'): # 过滤图片广告

continue

二:第一次跳转页面,无我们需要的链接

彼岸壁纸网站,对第一次跳转页面的链接,给的都是相对地址

但是极个别图片直接给的绝对地址,而且给的是该分类网址,所以需要做两步处理if('http://' in href):

url = href

else:

url = index + href

...

if(link == []):

print(url + ' 无此图片,爬取失败')

continue

下面是第二次跳转页面所遇问题

三:由于权限问题无法爬取图片if(link == []):

print(url + "该图片需要登录才能爬取,爬取失败")

continue

四:获取img的alt,作为下载图片文件的文件名时,名字中携带\t 或 文件名不允许的特殊字符:在Python中,’\t’ 是转义字符:空格

在windows系统当中的文件命名,文件名称中不能包含 \ / : * ? " < > | 一共9个特殊字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值