python 爬虫入门:爬取彼岸桌面美食壁纸附源码

需求分析

进入彼岸桌面网里面,爬取美食分类里面的壁纸

实现:

首先我们进入网页,分析美食页所在页第一页
http://www.netbian.com/meishi/index.htm
可以发现图片url都保存在< img src=“http://img.netbian.com/file/newc/5e12280121e8d3fdbbd7a3c27e1a8ae1.jpg” alt=“2019年新年快乐美食香槟壁纸”>
这里面。
所以思路就是,自动检索每一页面里面 ,src和 alt的值,然后进行匹配,从而达到下载每一张图片的目的
用正则表达式和requests库进行操作

代码:

import re
import requests
import os
import time
''' 爬取的彼岸桌面的壁纸'''
# 总页模板
urls = 'http://www.netbian.com/meishi/index_{}.htm'   

# 找出user-agent代理 模拟登入
headers = {
    
    
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }
    
# 创建保存图片的文件夹
if not os.path.exists("D:\meishi\Images"):
    os.mkdir("D:\meishi\Images")

# 爬取前5页
for i in range(1,6):
# 加入time.sleep 推迟线程 防止爬取频率过快 ,后台异常
    time.sleep(1)
# 第一页的特殊,单独标记起来 
    if i == 1:
        main_url= 'http://www.netbian.com/meishi/index.htm'
#除第一页的 
    else :
        main_url= urls.format(i)
    print('--------------------------')
# get请求,获取每一页面的url
    response = requests.get(main_url, headers=headers)
# 获取每一页网页代码文本信息
    html = response.text
# 正则匹配 ,(.*?) 用于分组只显示src,不显示alt,防止乱码, .*? 全匹配  ,都是非贪婪匹配
    img_urls = re.findall(r'<img src="(.*?)" alt=".*?">', html)
    for url in img_urls:
# 图片名字,对url进行截取,负索引;
          img_name = url.split('/')[-1]
# get请求,获取页面中图片的url
          response = requests.get(url,headers=headers)
          with open("D:\meishi\Images\{}".format(img_name),"wb") as file:
# 保存图片
               file.write(response.content)

展示:

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/A52091/article/details/105373852
今日推荐