Oracle 系统管理 - Linux 系统 - Backtrack 5 - 安全 - Juniper 技术 - Cisco 技术 - 思科模拟器 - Cisco 认证 - Cisco ios 下载

您现在的位置是:Docker > Python运维 > Python3.X 爬虫实战

Python3.X 爬虫实战

时间:2018-05-15 15:46  来源:未知  阅读次数: 复制分享 我要评论

1 背景

爬虫的价值就不多说了,Python 的便捷与强大也就不 BB 了,在这个数据泛滥、追求效率的时代,使用 Python 可以为我们创造相当多的便捷,Web 开发、桌面小工具开发、粘性脚本编写、大数据处理、图像处理、机器学习等等,能做到的事情实在太多。就拿一个再随便不过的需求来说吧,当我们在做 Android 开发时想将现有 drawable 目录下 *.png 图片全部自动转换为 webp 格式时,我们一般的套路可能都是借助第三方工具(很多都只能一张一张转换),而使用 Python 核心就两行代码就可以做到这一点,如果想批量自定义转换姿势(路径、文件名等),使用 Python 也是非常方便的,譬如这里就有一个我写的非常简单的 Python png 批量转换 webp 工具。具体源码如下:

#! /usr/bin/env python3

from PIL import Image
from glob import glob
import os
"""
说明:仅提供核心基础思想和脚本,自己可以改善为自动识别 Android 工程全部转换。
1. 将该脚本放置在自己 Android png 目录下;
2. 运行命令 python3 image2webp.py;
3. 在该目录下的 output 目录下生成当前文件夹下所有 png 图片对应的 webp 图片;
"""

def image2webp(inputFile, outputFile):
    try:
        image = Image.open(inputFile)
        if image.mode != 'RGBA' and image.mode != 'RGB':
            image = image.convert('RGBA')

        image.save(outputFile, 'WEBP')
        print(inputFile + ' has converted to ' + outputFile)
    except Exception as e:
        print('Error: ' + inputFile + ' converte failed to ' + outputFile)

matchFileList = glob('*.png')
if len(matchFileList) <= 0:
    print("There are no *.png file in this directory (you can run this script in your *png directory)!")
    exit(-1)

outputDir = os.getcwd() + "/output"
for pngFile in matchFileList:
    fileName = pngFile[0:pngFile.index('.')]
    if not os.path.exists(outputDir):
        os.makedirs(outputDir)
    image2webp(pngFile, outputDir + "/" + fileName + ".webp")

print("Converted done! all webp file in the output directory!")

震撼吧,人生苦短,我用 Python!真的是这样咯,不过这一系列我们不探讨 Python 的其他奥妙,而是直接探讨一个垂直领域 —— Python 爬虫。其实双赢的爬虫(搜索引擎收录爬虫就是共赢的,地下黑作坊在网上肆意洗数据,譬如洗邮箱数据就是被抵制或非法的)对于大多数网站来说是有利的,而恶意的爬虫就适得其反了。正常来说我们想要获取某些网站数据应该通过他们的开放 API 进行合法授权访问,但是企业毕竟是企业,都是有所保留的开放 API 权限,所以有时候我们不得不使用暴力手段来洗劫有价值的数据,这也就是爬虫存在的一大价值。

相关资讯