Fundamentals 9 min read

Python Scripts for Various Automation Tasks: Web Scraping, Chatbots, Poem Classification, Lottery Generation, Apology Writing, Screen Capture, and GIF Creation

This article presents a collection of Python 3.6.4 scripts that demonstrate how to scrape Zhihu images, converse with chatbots, classify Tang poems using NLP, generate random lottery numbers, automatically compose apology letters, capture screen images, and create animated GIFs, providing practical code examples for each task.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Python Scripts for Various Automation Tasks: Web Scraping, Chatbots, Poem Classification, Lottery Generation, Apology Writing, Screen Capture, and GIF Creation

The article begins with a brief discussion on the proverb "Don't reinvent the wheel" in Python programming, highlighting three common problems: lack of awareness of existing libraries, redundant code for simple tasks, and unclear purpose of collected data.

1. Scrape Zhihu images (30 lines of code)

import re
from selenium import webdriver
import time
import urllib.request

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.zhihu.com/question/29134042")
i = 0
while i < 10:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)
    try:
        driver.find_element_by_css_selector('button.QuestionMainAction').click()
        print("page" + str(i))
        time.sleep(1)
    except:
        break
result_raw = driver.page_source
content_list = re.findall("img src=\"(.+?)\" ", str(result_raw))
n = 0
while n < len(content_list):
    i = time.time()
    local = (r"%s.jpg" % (i))
    urllib.request.urlretrieve(content_list[n], local)
    print("编号:" + str(i))
    n = n + 1

2. Chat with two bots (Turing and Qingyun) in a loop

from time import sleep
import requests
s = input("请主人输入话题:")
while True:
    resp = requests.post("http://www.tuling123.com/openapi/api", data={"key":"4fede3c4384846b9a7d0456a5e1e2943", "info": s, })
    resp = resp.json()
    sleep(1)
    print('小鱼:', resp['text'])
    s = resp['text']
    resp = requests.get("http://api.qingyunke.com/api.php", {"key":"free", "appid":0, "msg": s})
    resp.encoding = 'utf8'
    resp = resp.json()
    sleep(1)
    print('菲菲:', resp['content'])
    # Additional example with 小i robot (omitted for brevity)

3. Analyze Tang poem authorship (Li Bai vs. Du Fu) using Jieba and NLTK

import jieba
from nltk.classify import NaiveBayesClassifier

# Load poems
text1 = open(r"libai.txt", "rb").read()
list1 = jieba.cut(text1)
result1 = " ".join(list1)
text2 = open(r"dufu.txt", "rb").read()
list2 = jieba.cut(text2)
result2 = " ".join(list2)

# Feature extraction
def word_feats(words):
    return dict([(word, True) for word in words])

libai_features = [(word_feats(lb), 'lb') for lb in result1]
dufu_features = [(word_feats(df), 'df') for df in result2]
train_set = libai_features + dufu_features
classifier = NaiveBayesClassifier.train(train_set)

# Test
sentence = input("请输入一句你喜欢的诗:")
seg_list = jieba.cut(sentence)
result = " ".join(seg_list)
words = result.split(" ")
lb = df = 0
for word in words:
    classResult = classifier.classify(word_feats(word))
    if classResult == 'lb':
        lb += 1
    if classResult == 'df':
        df += 1
x = float(str(float(lb) / len(words)))
y = float(str(float(df) / len(words)))
print('李白的可能性:%.2f%%' % (x * 100))
print('杜甫的可能性:%.2f%%' % (y * 100))

4. Randomly generate a 35‑choose‑7 lottery ticket

import random

temp = [i + 1 for i in range(35)]
random.shuffle(temp)
i = 0
list = []
while i < 7:
    list.append(temp[i])
    i = i + 1
list.sort()
print('\033[0;31;;1m')
print(*list[0:6], end="")
print('\033[0;34;;1m', end=" ")
print(list[-1])

5. Automatically generate an apology letter using random sentences from an Excel file

import random
import xlrd

ExcelFile = xlrd.open_workbook(r'test.xlsx')
sheet = ExcelFile.sheet_by_name('Sheet1')
i = []
x = input("请输入具体事件:")
y = int(input("老师要求的字数:"))
while len(str(i)) < y * 1.2:
    s = random.randint(1, 60)
    rows = sheet.row_values(s)
    i.append(*rows)
print("        "*8 + "检讨书" + "\n" + "老师:")
print("我不应该" + str(x) + ",", *i)
print("再次请老师原谅!")

6. Screen capture utility that saves screenshots at a high frequency

from time import sleep
from PIL import ImageGrab

m = int(input("请输入想抓屏几分钟:"))
m = m * 60
n = 1
while n < m:
    sleep(0.02)
    im = ImageGrab.grab()
    local = (r"%s.jpg" % (n))
    im.save(local, 'jpeg')
    n = n + 1

7. Create an animated GIF from a sequence of images

from PIL import Image

im = Image.open("1.jpg")
images = []
images.append(Image.open('2.jpg'))
images.append(Image.open('3.jpg'))
im.save('gif.gif', save_all=True, append_images=images, loop=1, duration=1, comment=b"aaabb")

The article concludes with a disclaimer that the content is collected from the internet and the original author retains copyright.

pythonautomationNLPChatbotGIFWeb Scrapingscreen-capture
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.