爬取风景图片

突发奇想,给各位爬爬壁纸图片,话不多说,开始行动。如果文章对你有帮助,点赞,收藏。

一,知道爬取自己想要的壁纸图片网址
模型写出来

'''
爬取网络图片
1,要到主页面的源码,从主页面拿到子页面连接
2,通过子页面内容,找到子页面下载路径
3,下载图片

'''

def picture():
    host_page(url)
    son_page()
    download()
def host_page():
    #获取主页面
    pass
def son_page():
    #获取子页面
    pass
def download():
    #下载图片
    pass
if __name__ == '__main__':
    picture()

目标

点击f12,进入开发者模式。找到自己需要的图片(或者点击鼠标右键,点击检查也可以)
爬取风景图片_第1张图片

'''
爬取网络图片
1,要到主页面的源码,从主页面拿到子页面连接
2,通过子页面内容,找到子页面下载路径
3,下载图片
'''
import requests
from bs4 import BeautifulSoup
import time
def picture():
    host_page()
    download()
def host_page():
    #获取主页面
    url='https://pic.netbian.com/4kfengjing/'
    headers = {
     
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
    }  # 模拟的服务器头
    resp=requests.get(url,headers=headers)#换头
    newurl=BeautifulSoup(resp.text,'html.parser')#主页面内容就出来了


    print(newurl)


def download():
    #下载图片
    pass
if __name__ == '__main__':
    host_page()

显示乱码,所以进行编码更改在这里插入图片描述
参考操作地址:https://editor.csdn.net/md/?articleId=112390388(处理方法小编写弄一个单独的博客,欢迎大家观看)
在这里插入图片描述
在这里插入图片描述
处理完乱码,进行筛选,选择自己想要内容。

'''
爬取网络图片
1,要到主页面的源码,从主页面拿到子页面连接
2,通过子页面内容,找到子页面下载路径
3,下载图片
'''
import requests
from bs4 import BeautifulSoup
import time
def picture():
    host_page()
    download()
def host_page():
    #获取主页面
    url='https://pic.netbian.com/4kfengjing/'
    headers = {
     
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
    }  # 模拟的服务器头
    resp=requests.get(url,headers=headers)#换头
    resp.encoding='gbk'#处理乱码
    newurl=BeautifulSoup(resp.text,'html.parser')#主页面内容就出来了
    alist=newurl.find('div',class_='slist').find_all("a")#查找a标签
    for i in alist :
        print(i.get('href'))#获取子页面



def download():
    #下载图片
    pass
if __name__ == '__main__':
    host_page()

现象:地址爬取风景图片_第2张图片
下面创建一个文件夹,用来存储照片。
爬取风景图片_第3张图片

'''
爬取网络图片
1,要到主页面的源码,从主页面拿到子页面连接
2,通过子页面内容,找到子页面下载路径
3,下载图片
'''
import requests
from bs4 import BeautifulSoup
import time
def picture():

    #获取主页面
    url='https://pic.netbian.com/4kfengjing/'
    headers = {
     
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
    }  # 模拟的服务器头
    resp=requests.get(url,headers=headers)#换头
    resp.encoding='gbk'#处理乱码
    newurl=BeautifulSoup(resp.text,'html.parser')#主页面内容就出来了
    alist=newurl.find('div',class_='slist').find_all("a")#查找a标签
    for i in alist :
        href=i.get('href')#获取子页面
        child_resp=requests.get('https://pic.netbian.com/'+href)
        child_resp.encoding='gbk'
        text=child_resp.text
        child_page = BeautifulSoup(text, 'html.parser')
        a=child_page.find('a',id='img')
        img=a.find('img')
        src=img.get('src')
        #下载图片
        print(src)
        img_resp=requests.get('https://pic.netbian.com/tupian/21953.html'+src)

        img_name=src.split("/")[-1]#取url中最后一个/以后内容为名字

        with open('picture/'+img_name,mode='wb') as f :
            f.write(img_resp.content) #图片内容获取
        print('下载完成')
        time.sleep(1)#防止ip地址被封,休息1秒后继续

if __name__ == '__main__':
   picture()

爬取风景图片_第4张图片

爬取风景图片_第5张图片
文件夹取消索引(方便)
爬取风景图片_第6张图片

好了,就完成了,谢谢大家观看。

你可能感兴趣的:(python练习,python)