Python 简单爬虫教程

  • 就是突然想玩一下
  • 这里是一个下载网页内图片的例子
  • 环境 Python3.7

需首先安装

pip install lxml -i https://mirrors.aliyun.com/pypi/simple

# from urllib.request import urlretrieve  # 第一种方法
import requests  # 第二种方法
from bs4 import BeautifulSoup

'''
If the target directory already exists, raise an OSError if exist_ok is False. Otherwise no exception is raised.  
This is recursive.   如果已存在要创建的文件夹,则会报错,除非使用了exist_ok=True
'''
os.makedirs('img', exist_ok=True)  #

#IMG_URL = 'https://www.baidu.com/img/sug_bd.png'
# urlretrieve(IMG_URL, './img/img1.png')  # 从哪里来 放到哪里去  我的有SSL报错,就不用这个了!


# 第二种 先全部下载好,放到内存。全部下载好再从内存拷贝到硬盘。实测可以下载下来,但显然也不推荐
# r = requests.get(IMG_URL)
# with open('img/img.png', 'wb') as f:  # wb write binary
#     f.write(r.content)


URL = 'https://morvanzhou.github.io/'
html = requests.get(URL).text
soup = BeautifulSoup(html, 'lxml')
img_ul = soup.find_all('ul', {'id': 'recent-update'})
# print(html)
# print(img_ul)

for ul in img_ul:
    imgs = ul.find_all('img')  # 找到所有的img tag  对应<img class >
    for img in imgs:
        src = img['src']  # 找到src 也就是图片src 地址
        # print(img)  #
        print(src)

	    # 得到具体的图片连接 ,这里使用了教程的主页,表示感谢
        # stream=True:时时刻刻下载?
        r = requests.get('https://morvanzhou.github.io/' + src, stream=True) 

        img_name = src.split('/')[-1]  # 去掉字符串最后一个/之前的东东,作为文件名

        with open('img/'+ img_name, 'wb') as f:   # ‘wb’ 以二进制方式写入文件 
            for chunk in r.iter_content(chunk_size=512):   # 离散的下载写入,而不是全部下载到内存之后再保存
                f.write(chunk)
                
        print('Saved {}'.format(img_name))
        
  • 可以在img文件夹里面找到下载下来的图片了!其他文件也是类似
Reference & Acknowledgement

莫烦Python

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值