10 Useful Python Automation Scripts to Simplify Repetitive Tasks
This article presents ten practical Python automation scripts—including HTML parsing, QR code scanning, screenshot capture, PDF manipulation, mobile device control, CPU/GPU temperature monitoring, Instagram uploading, and video watermarking—to help developers eliminate repetitive tasks and streamline everyday workflows.
In the age of automation, many repetitive tasks can be streamlined with Python scripts. This guide introduces ten useful automation scripts that cover web scraping, QR code scanning, screenshot capture, PDF handling, mobile device control, hardware monitoring, social media posting, and video watermarking.
01. Parse and Extract HTML
This script fetches HTML from a URL and provides functions to parse and extract data using the gazpacho library.
# Parse and Extract HTML
# pip install gazpacho
import gazpacho
# Extract HTML from URL
url = 'https://www.example.com/'
html = gazpacho.get(url)
print(html)
# Extract HTML with Headers
headers = {'User-Agent': 'Mozilla/5.0'}
html = gazpacho.get(url, headers=headers)
print(html)
# Parse HTML
parse = gazpacho.Soup(html)
# Find single tags
tag1 = parse.find('h1')
tag2 = parse.find('span')
# Find multiple tags
tags1 = parse.find_all('p')
tags2 = parse.find_all('a')
# Find tags by class
tag = parse.find('.class')
# Find tags by attribute
tag = parse.find("div", attrs={"class": "test"})
# Extract text from tags
text = parse.find('h1').text
text = parse.find_all('p')[0].text02. QR Code Scanner
This script uses the qrtools module to programmatically scan QR code images.
# Qrcode Scanner
# pip install qrtools
from qrtools import Qr
def Scan_Qr(qr_img):
qr = Qr()
qr.decode(qr_img)
print(qr.data)
return qr.data
print("Your Qr Code is: ", Scan_Qr("qr.png"))03. Screenshot Capture
Capture full-screen or region screenshots using pyautogui and Pillow.
# Grab Screenshot
# pip install pyautogui
# pip install Pillow
from pyautogui import screenshot
import time
from PIL import ImageGrab
def grab_screenshot():
shot = screenshot()
shot.save('my_screenshot.png')
def grab_screenshot_area():
area = (0, 0, 500, 500)
shot = ImageGrab.grab(area)
shot.save('my_screenshot_area.png')
def grab_screenshot_delay():
time.sleep(5)
shot = screenshot()
shot.save('my_screenshot_delay.png')04. Create Audiobooks
Convert PDF text to audio using gTTS and PyPDF2.
# Create Audiobooks
# pip install gTTS
# pip install PyPDF2
from PyPDF2 import PdfFileReader as reader
from gtts import gTTS
def create_audio(pdf_file):
read_Pdf = reader(open(pdf_file, 'rb'))
for page in range(read_Pdf.numPages):
text = read_Pdf.getPage(page).extractText()
tts = gTTS(text, lang='en')
tts.save('page' + str(page) + '.mp3')
create_audio('book.pdf')05. PDF Editor
Perform common PDF operations such as parsing text, removing pages, adding blank pages, rotating pages, and merging PDFs using PyPDF4.
# PDF Editor
# pip install PyPDf4
import PyPDF4
# Parse the Text from PDF
def parse_text(pdf_file):
reader = PyPDF4.PdfFileReader(pdf_file)
for page in reader.pages:
print(page.extractText())
# Remove Page from PDF
def remove_page(pdf_file, page_numbers):
filer = PyPDF4.PdfReader('source.pdf', 'rb')
out = PyPDF4.PdfWriter()
for index in page_numbers:
page = filer.pages[index]
out.addPage(page)
with open('rm.pdf', 'wb') as f:
out.write(f)
# Add Blank Page to PDF
def add_page(pdf_file, page_number):
reader = PyPDF4.PdfFileReader(pdf_file)
writer = PyPDF4.PdfWriter()
writer.addPage()
with open('add.pdf', 'wb') as f:
writer.write(f)
# Rotate Pages
def rotate_page(pdf_file):
reader = PyPDF4.PdfFileReader(pdf_file)
writer = PyPDF4.PdfWriter()
for page in reader.pages:
page.rotateClockwise(90)
writer.addPage(page)
with open('rotate.pdf', 'wb') as f:
writer.write(f)
# Merge PDFs
def merge_pdfs(pdf_file1, pdf_file2):
pdf1 = PyPDF4.PdfFileReader(pdf_file1)
pdf2 = PyPDF4.PdfFileReader(pdf_file2)
writer = PyPDF4.PdfWriter()
for page in pdf1.pages:
writer.addPage(page)
for page in pdf2.pages:
writer.addPage(page)
with open('merge.pdf', 'wb') as f:
writer.write(f)06. Mini StackOverflow (howdoi)
Use the howdoi module to fetch StackOverflow answers directly from the command line.
# Automate Stackoverflow
# pip install howdoi
# Get Answers in CMD
> howdoi how do i install python3
> howdoi selenium Enter keys
> howdoi how to install modules
> howdoi Parse html with python
> howdoi int not iterable error
> howdoi how to parse pdf with python
> howdoi Sort list in python
> howdoi merge two lists in python
> howdoi get last element in list python
> howdoi fast way to sort list07. Automate Mobile Phones (ADB)
Control Android devices via ADB for actions like swiping, tapping, calling, sending SMS, downloading files, taking screenshots, and powering off.
# Automate Mobile Phones
# pip install opencv-python
import subprocess
def main_adb(cm):
p = subprocess.Popen(cm.split(' '), stdout=subprocess.PIPE, shell=True)
(output, _) = p.communicate()
return output.decode('utf-8')
def swipe(x1, y1, x2, y2, duration):
cmd = 'adb shell input swipe {} {} {} {} {}'.format(x1, y1, x2, y2, duration)
return main_adb(cmd)
def tap(x, y):
cmd = 'adb shell input tap {} {}'.format(x, y)
return main_adb(cmd)
def make_call(number):
cmd = f"adb shell am start -a android.intent.action.CALL -d tel:{number}"
return main_adb(cmd)
def send_sms(number, message):
cmd = 'adb shell am start -a android.intent.action.SENDTO -d sms:{} --es sms_body "{}"'.format(number, message)
return main_adb(cmd)
def download_file(file_name):
cmd = 'adb pull /sdcard/{}'.format(file_name)
return main_adb(cmd)
def screenshot():
cmd = 'adb shell screencap -p'
return main_adb(cmd)
def power_off():
cmd = '"adb shell input keyevent 26"'
return main_adb(cmd)08. Monitor CPU/GPU Temperature
Use pythonnet and OpenHardwareMonitorLib to read real‑time CPU and GPU temperatures.
# Get CPU/GPU Temperature
# pip install pythonnet
import clr
clr.AddReference("OpenHardwareMonitorLib")
from OpenHardwareMonitorLib import *
spec = Computer()
spec.GPUEnabled = True
spec.CPUEnabled = True
spec.Open()
def Cpu_Temp():
while True:
for cpu in range(0, len(spec.Hardware[0].Sensors)):
if "/temperature" in str(spec.Hardware[0].Sensors[cpu].Identifier):
print(str(spec.Hardware[0].Sensors[cpu].Value))
def Gpu_Temp():
while True:
for gpu in range(0, len(spec.Hardware[0].Sensors)):
if "/temperature" in str(spec.Hardware[0].Sensors[gpu].Identifier):
print(str(spec.Hardware[0].Sensors[gpu].Value))09. Instagram Upload Bot
Automate photo, video, and story uploads to Instagram using the instabot library.
# Upload Photos and Video on Insta
# pip install instabot
from instabot import Bot
def Upload_Photo(img):
robot = Bot()
robot.login(username="user", password="pass")
robot.upload_photo(img, caption="Medium Article")
print("Photo Uploaded")
def Upload_Video(video):
robot = Bot()
robot.login(username="user", password="pass")
robot.upload_video(video, caption="Medium Article")
print("Video Uploaded")
def Upload_Story(img):
robot = Bot()
robot.login(username="user", password="pass")
robot.upload_story(img, caption="Medium Article")
print("Story Photos Uploaded")
Upload_Photo("img.jpg")
Upload_Video("video.mp4")10. Video Watermark
Add a text watermark to a video using moviepy.
# Video Watermark with Python
# pip install moviepy
from moviepy.editor import *
clip = VideoFileClip("myvideo.mp4", audio=True)
width, height = clip.size
text = TextClip("WaterMark", font='Arial', color='white', fontsize=28)
set_color = text.on_color(size=(clip.w + text.w, text.h-10), color=(0,0,0), pos=(6,'center'), col_opacity=0.6)
set_textPos = set_color.set_pos(lambda pos: (max(width/30,int(width-0.5* width* pos)),max(5*height/6,int(100* pos))) )
Output = CompositeVideoClip([clip, set_textPos])
Output.duration = clip.duration
Output.write_videofile("output.mp4", fps=30, codec='libx264')These scripts can be adapted and extended to fit a wide range of automation needs, helping developers save time and reduce manual effort.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
