Python爬虫——简单地爬取壁纸图片

注意事项

本博客爬取的壁纸是百度网址上的图片,直接百度"壁纸",即可进入该网址。
爬取图片,主要理解的地方是:
首先通过 主站的url 获取 图片网址信息,再利用正则表达式找到各个图片的链接,接着通过 图片链接 获取 图片信息,直接下载图片。

爬虫代码

import os
import re
import urllib.request

# 打开网址,获取网址信息
def openUrl(url):
        req = urllib.request.Request(url)
        # 添加 header 信息
        req.add_header(
		'User-Agent',
		'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
		)
        response = urllib.request.urlopen(req)
        html = response.read()

        return html

# 用正则表达式,找到图片链路
def findImgs(url):
        html = openUrl(url).decode('utf-8')    # 解码

        # 编写正则表达式
        informations = r'"objURL":"(.*?)"'

        # 返回一个正则表达式对象
        reg = re.compile(informations, re.S)

        # 开始查找所有信息
        contents_list = re.findall(reg, html)
        contents = []

        for content in contents_list:
                contents.append(content)

        return contents

# 下载图片folder为文件夹位置,img_addrs存储着图片的链路地址
def saveImgs(folder, img_addrs):
        for each in img_addrs:
                print(each)
                filename = each.split('/')[-1]
                with open(filename, 'wb') as f:
                        img = openUrl(each)
                        f.write(img)

def download(folder='IMGS'):
        os.mkdir(folder)
        os.chdir(folder)

        url = 'http://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gbk&word=%B1%DA%D6%BD&fr=ala&ala=1&pos=0&alatpl=wallpaper&oriquery=%E5%A3%81%E7%BA%B8'
        img_addrs = findImgs(url)
        saveImgs(folder, img_addrs)

if __name__ == '__main__':
        download()

注:
我这个代码因为比较简单,很对方面没有考虑全,故而爬到后面会被报出404错误,即被屏蔽掉了。
写这篇仅仅留下一个爬去图片的思路。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值