python爬取网站图片并保存到文件夹下(re和beautiful)

本文介绍如何使用Python爬虫从特定网站抓取图片链接,并将大图下载到本地文件夹。通过访问网页源代码获取第一层链接,进一步获取小图链接并转换为大图链接。建议在爬取过程中加入time.sleep(3)避免被封禁。实操中发现该网站下载较为困难,但此方法可应用于其他网站进行大量图片的爬取。
摘要由CSDN通过智能技术生成

网址:人文景观_图片_高清人文景观壁纸-回车桌面

||由于这种网站是第一层放着只是放着单个链接(不太清楚的图片链接)然后打开获取其中单个稍微清楚的链接,这个链接也是不清楚的图片的链接,从这个网也源代码取大图的链接

ps:最好写一个time.sleep(3)来更改访问时间,防止被拉黑


爬取的总的源代码:

# https://up.enterdesk.com/edpic_source/aa/ec/48/aaec4824403a6bbda9061b3494a693d2.jpg  #大图链接
# https://up.enterdesk.com/edpic/aa/ec/48/aaec4824403a6bbda9061b3494a693d2.jpg  #小图链接  这里从网页源代码中找到大小图的链接来比较,找到不同处,然后更改
import os  #这个是新建文件夹的库
import time  #设定访问时间长短
import urllib.request,urllib.error  #导入请求网页的库
import re   #导入使用正则表达式需要的库
from bs4 import BeautifulSoup  #导入BeautifulSoup 这个库是来解析的库

baseurl = "https://www.enterdesk.com/zhuomianbizhi/renwenbizhi/"
head = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44"
}  #防着第一遍就访问不去网页
# print(os.getcwd())  #这一条命令可以显示当前所在目录
#请求网页
requ1 = urllib.request.Request(url=baseurl,headers=head)
#对请求网页进行打开
resp1 = urllib.request.urlopen(requ1)
#对返回的网页源代码实行中文类似的解码
html1 = resp1.read().decode('utf-8')
#对上面的字符类型的网页源代码进行解析,可以是电脑识别
soup1 = BeautifulSoup(html1,'html.parser')
# print(soup)  #可以测试是否可以接收到网页源代码

# 这里在当前目录下新建一个名为图片的目录来存储获取到的图片
dir_name = '图片'
if not os.path.exists(dir_name):
    os.mkdir(dir_name)

time.sleep(1)  #这里设置一个访问时长,防止把网页服务器爬崩
#从网页中获取第一个类似相册的图片的网页源代码
links1 = re.compile(r'<a href="(.*?)"')  #正则来匹配第一个图片的
for item in soup1.find_all("div",class_="egeli_pic_li"):
    item = str(item)


    try:  #这里添加异常处理是因为网页图片太多,需要向下滑动才能刷新,后面加载不出来,所以加一个异常处理
        link1 = re.findall(links1,item)[0]  #从网页源代码中查找每个链接
        # print(link)
    except(IndexError):
        pass

    #对获取的第一层链接,进行上述操作获取第二步的小图链接
    requ2 = urllib.request.Request(url=link1,headers=head)
    resp2 = urllib.request.urlopen(requ2)
    html2 = resp2.read().decode('utf-8')
    soup2 = BeautifulSoup(html2,'html.parser')
    # print(soup2)
    links2 = re.compi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值