Python自动化应用:七个实用代码案例分享

今天跟大家分享一些超酷的Python小技巧。这些技巧不仅有趣,而且实用到爆,让你的生活更加智能化。

1、抓取某乎图片

使用selenium和urllib下载图片

想要从网上批量下载图片?用Python轻松搞定!只需要几行代码,你就可以从知乎这样的大型网站上下载你感兴趣的图片啦。这里用到的是selenium和urllib,简直就是抓图利器!

亲爱的朋友,跟着我一起来学习这段Python代码,它可以帮我们在知乎网站上爬取图片!

首先需要提醒您,这段代码需要安装Python环境和一些第三方库,如果您没有编程基础,建议找懂行的朋友帮忙安装和运行。

# 导入Selenium的webdriver模块,用于控制浏览器
import selenium.webdriver as driver 

# 导入时间模块,用于控制爬取速度
import time 

# 导入urllib库,用于图片下载
import urllib.request

# 启动Chrome浏览器,进入最大化模式 
browser = driver.Chrome()
browser.maximize_window()  

# 设置爬取的网址为“这个回答下的图片”
target_url = "https://www.zhihu.com/question/29134042"

# 打开目标网页
browser.get(target_url)

# 循环10页数据
for page in range(10):

    # 网页朝下滑动到底部,加载更多图片
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

    # 暂停2秒,等待页面加载
    time.sleep(2)

    try:
        # 尝试点击“显示更多回答”按钮,加载下一页数据
        browser.find_element_by_css_selector('button.QuestionMainAction').click()  

        # 打印已爬取的页数
        print("已爬取第" + str(page) + "页")

        # 暂停1秒,避免频繁点击被封IP
        time.sleep(1) 

    # 如果无法点击按钮,通常代表已到最后一页
    except:  
        break
        
# 获取当前页面的HTML源代码  
page_html = browser.page_source    

# 使用正则表达式提取图片URL
img_list = re.findall("img src=\\"(.+?)\\" ", page_html)

# 定义一个数值n,记录图片下载数量
n = 0

# 遍历图片URL列表
for img_url in img_list:

    # 生成一个唯一的文件名,作为图片保存名字  
    name = str(time.time()) + ".jpg" 
    
    # 调用urllib库,下载图片到本地
    urllib.request.urlretrieve(img_url, name)

    # 打印已下载的图片数
    print("已下载第"+ str(n) + "张图片")
    
    # n增加1,开始下一张图片的下载
    n += 1

第一次看到这段代码的时候,或许会有些云里雾里的感觉。但是只要慢慢理解,你会发现其实原理很简单明了!

利用Selenium打开Chrome浏览器,自动点击翻页按钮爬取图片;用正则表达式提取图片URL;然后用urllib一个个图片地下载到本地。

良心推荐!这段代码虽然只有30行,但把整个爬取思路展现得很完整,新手可以作为示例代码进行学习,一定可以大大提高编程能力!

2、 聊天机器人互聊

有没有想过让多个机器人聊天?Python可以帮你实现这个有趣的想法。通过调用机器人们的接口,你可以看到它们之间的有趣对话。说不定还能从中获得一些人工智能的灵感呢!

from time import sleep #导入sleep函数,控制执行间隔
import requests #导入请求库

print('欢迎来到多机器人聊天系统!')
topic = input('请输入话题开始聊天:')#读取用户输入的话题

while True: #无限循环
  #发送话题给小潘机器人,获取回复 
  pan_reply = get_pan_reply(topic) 
  
  print('小潘:'+pan_reply)
  sleep(1)  
  
  #小潘的回复作为新话题,发送给小洋机器人
  yang_reply = get_yang_reply(pan_reply)   
  
  print('小洋:'+yang_reply)
  sleep(1)

  print('请和小萝进行交流:')
  user_input = input()#获取用户输入
  
  #用户输入发送给小萝机器人
  luo_reply = get_luo_reply(user_input)
  
  print('小萝:'+luo_reply)
  sleep(1)

主要思路是:

  1. 用户输入话题

  2. 话题交给小潘机器人回复,得到回复1

  3. 将回复1作为新话题,交给小洋机器人回复,得到回复2

  4. 用户输入语句,发送给小萝机器人回复

这样我们就实现了一个多机器人聊天的系统!

这个系统的魅力就在于,我们可以把控制权先交给机器人,看它们之间如何互动!过程一定很有意思!

代码非常简单,只要实现其中的3个获取回复的函数,就可以顺利运行。相信通过这个示例,可以帮助你对 python 爬虫和聊天机器人有更深的理解!

接下来我要带你学习如何使用Python代码与智能小i机器人互动聊天!

在开始coding之前,需要确保Python环境已经安装完成。如果你是编程小白,建议找到懂行的朋友提供帮助

# 导入请求模块urllib,用于连接小i机器人
import urllib.request
# 导入正则表达式re,用于提取响应文本  
import re
print('你可以和小i随意聊天了:')
# 执行循环,使对话持续有趣
while True:
  # 读取用户语句
  user_words = input('用户:')
  # 对语句进行URL编码,可添加特殊字符
  encoded_words = urllib.parse.quote(user_words)
  # 构建HTTPS请求链接 
  request_url = 'https://api.xiaoi.com/...' + encoded_words
  # 发送网络请求,获取小i响应  
  response = urllib.request.urlopen(request_url)
  # 解码响应内容,得到文本  
  html_text = response.read().decode()
  # 使用正则表达式提取回复  
  reply_list = re.findall('"content":"(.+?)","', html_text)
  # 打印回复内容
  print('小i:' + reply_list[-1])

主要逻辑就是:

  1. 用户输入语句

  2. 对语句编码,构建请求

  3. 获取小i响应,提取文本

  4. 正则匹配回复内容

  5. 打印输出

这样我们就可以无限循环地与小i机器人畅所欲言!

3、分析诗词作者

接下来我要教大家如何判断一句古诗是否出自诗圣李白之手!只需要几行python代码就可以实现!

在我们开始coding前,需要确保环境配置正确哦。如果你是编程小白,建议找懂行的帮忙安装和运行。

废话不多说了,让我们直奔主题,一睹这个判断李白的神奇代码!

# 1. 导入分词模块jieba,用于切割文本  
import jieba
# 2. 导入朴素贝叶斯分类器  
from nltk.classify import NaiveBayesClassifier
# 3. 准备李白和杜甫的诗歌语料 
libai_text = open('./libai.txt').read()  
dufu_text = open('./dufu.txt').read()
# 4. 对诗歌语料分词,提取诗歌词汇  
libai_words = jieba.cut(libai_text)  
dufu_words = jieba.cut(dufu_text)
# 5. 构建词汇特征  
def get_word_features(words):
    return dict([(w, True) for w in words])
# 6. 提取李白和杜甫的词汇特征
libai_feats = [(get_word_features(lw), '李白') for lw in libai_words]  
dufu_feats = [(get_word_features(dw), '杜甫') for dw in dufu_words]  
# 7. 基于特征,训练朴素贝叶斯分类器
classifier = NaiveBayesClassifier.train(libai_feats + dufu_feats)  
# 8. 利用分类器判断输入诗句的作者  
user_poem = input('请输入您喜欢的一句诗:')
poem_words = get_word_features(jieba.cut(user_poem))
author = classifier.classify(poem_words)
print('您输入的诗句应该是出自“%s”之手!' % author)

整个判断流程包括:

  1. 获取李白和杜甫的语料

  2. 分词提取词汇

  3. 构造词汇特征

  4. 基于特征训练分类器

  5. 用分类器判断输入诗句的作者

这样我们就实现了一个智能的诗歌鉴别器!简直是神器啊!

这段代码虽然短小,但技术原理和运用都很到位!快去波着啊!如果你在使用过程中遇到什么问题,也欢迎在评论区和我讨论!

4、生成彩票号码

随机产生35选7号码

猜不透彩票的号码?让Python来帮你随机选择吧!今天要教大家如何通过简单的random模块用几行Python代码随机生成双色球号码!赶快把笔记本准备好,我们马上开始讲解!

在运行代码前,需要确保Python环境已经安装完成。如果你是小白用户,建议找懂行的朋友提供帮助。

好,让我们正式启航,一睹这个神奇号码生成器的芳容:

import random 1. 导入随机数模块
number_pool = list(range(1, 36)) 2. 定义号码池
random.shuffle(number_pool) 3. 随机打乱号码
red_balls = [] 
4. 存放红球
for i in range(6):   
    red_balls.append(number_pool[i])
red_balls.sort()  
blue_ball = number_pool[6] 5. 取第7个为蓝球
print(red_balls) 打印红球
print(blue_ball) 打印蓝球

整个流程就是:

  1. 准备1-35的号码

  2. 随机打乱号码

  3. 取前6个为红球

  4. 第7个为蓝球

这样我们就实现了一个双色球随机号码生成器!

是不是感觉特别简单?!这个小例子运用非常广泛,比如用在抽奖程序等场景。

5、写检讨书

根据表格中的句子随机生成检讨书内容

最近我又学了一个小技能,可以自动生成检讨书!是不是很神奇很有趣~ 如果你需要写检讨书,但又苦于无从下手,Python也能帮到你。只需准备一些常用句式,Python就能自动生成一篇看起来非常真诚的检讨书,帮你解决燃眉之急。


import random # 1. 导入随机库
import xlrd # 2. 导入Excel读取库 
data = xlrd.open_workbook('data.xlsx') # 3. 打开 EXEMPLARY 语句库
sheet = data.sheet_by_name('Sheet1') # 4. 获取工作表
event = input('请输入过错事件:') # 5. 用户输入事件
words_num = int(input('请输入所需字数:')) # 6. 输入字数
letter = [] # 7. 定义检讨书内容  
while len(letter) < words_num * 1.2:  
    row = random.randint(1, 60)  # 8. 随机取一行 EXEMPLARY 语句
    row_text = sheet.row_values(row)  
    letter.append(row_text)
print('检讨书\n老师您好:\n我不应该%s,' % event, *letter) 
# 9. 构建检讨书文本

主要逻辑就是:

  1. 读取 EXAMPLE 语句库

  2. 用户输入事件和字数

  3. 随机取语句拼接成检讨书

这样我们就可以自动生成检讨书啦!是不是瞬间效率翻倍!

这个示例代码虽然简单,但应用很广泛。相信可以给大家在实际开发中提供很多启发和帮助!

6、屏幕录像

使用PIL图像处理库进行屏幕捕获和录像

想要记录你的屏幕操作吗?Python可以通过PIL库帮你抓取屏幕,甚至制作成视频。无论是制作教程还是记录游戏精彩瞬间,这都是一个非常有用的工具。


from time import sleep  # 1. 导入sleep函数
from PIL import ImageGrab # 2. 导入ImageGrab模块

record_minutes = int(input('请输入录制时长(分钟)')) # 3. 用户输入录制时长   

minutes_to_seconds = record_minutes * 60 # 4. 转化为秒数
screenshot_num = 0 # 5. 初始化截图张数

while screenshot_num < minutes_to_seconds: # 6. 检测是否结束
    sleep(0.1)  
    img = ImageGrab.grab() # 7. 抓取屏幕  
    path = '%s.jpg' % screenshot_num # 8. 定义保存路径  
    img.save(path, 'jpeg') # 9. 保存截图
    screenshot_num += 1 # 10. 累加截图数

整个思路就是:

  1. 读取用户录制分钟数

  2. 转化为秒,并初始化截图数

  3. 循环截图,直到结束录制

这样我们就实现了屏幕录制功能!是不是特别简洁明了?

这个小功能在很多实际场景都能派上用场,你也可以结合其他代码,搭建成一个完整的应用!

7、制作GIF图

使用PIL库将图片序列制作成GIF动图

GIF动图越来越流行,用Python自制GIF动图简直不能更酷!只需几张图片和简单的代码,你就能创造出有趣的GIF来表达你的情感或者分享你的故事。

Python不仅仅是一种编程语言,它是一种工具,一种艺术,一种让生活更加丰富多彩的方式。所以,不要重复造轮子,用好现有的轮子,让生活变得更加智能和有趣!

废话不多说,让我们直接查看代码:


from PIL import Image # 1. 导入图像处理模块
first_img = Image.open('1.jpg') # 2. 打开第一张图片 
img_list = []
img_list.append(Image.open('2.jpg')) # 3. 添加第二张
img_list.append(Image.open('3.jpg')) # 4. 添加第三张
first_img.save('result.gif', save_all=True, append_images=img_list, loop=0)  
# 5. 保存为GIF动图

主要就分几个步骤:

  1. 打开首图片

  2. 将其他图片加入列表

  3. 调用save接口保存为GIF

是不是超级简单呢?

这个小案例就是运用Python的PIL图像处理库,来批量处理图片和生成GIF动图。

它的应用场景很多,比如把零散的商品图片打包成G

你可能感兴趣的:(Python,系统运维,网络技术,python,开发语言,python自动化,python实例,python爬虫,python数据分析,python制作GIF)