几个常用脚本

作为程序员,每天都很多问题需要编码来解决,有些问题仅通过 Python 的标准库并不能轻松解决,本文今天分享一些高频问题的解决方案,可以作为一个手边的工具箱,你可以先收藏备用。

1、测网速,选择最佳服务器
这个脚本可以测试上传、下载速度,也提供了函数 get_best_server 来选择最佳服务器,在客户端和多服务器模式中非常实用。

脚本:

# pip install pyspeedtest
# pip install speedtest
# pip install speedtest-cli
#方法1
import speedtest
speedTest = speedtest.Speedtest() 
print(speedTest.get_best_server())
#检查下载速度 
print(speedTest.download())
#检查上传速度
print(speedTest.upload())
#方法2
import pyspeedtest
st = pyspeedtest.SpeedTest()
st.ping()
st.download()
st.upload()
2、使用 google 搜索关键词
有时候为了引导用户使用搜索引擎,我们可以直接将错误关键词用 google 搜索下,将结果显示在界面上,这样用户可以直接点击链接来查看搜索结果,很方便,不需要再复制关键词,打开浏览器搜素等一系列麻烦。

#pip install google
from googlesearch import search
query = "somenzz"
 
for url in search(query):
    print(url)
print 的结果就是 google 搜索结果的 url 列表,类似的,百度和 bing 也应该有对应的库,你可以搜索以下。

3、Web 机器人
这个咱之前已经分享过了,selenium 和 playwright 都可以,我个人更喜欢 playwright

selenium 示例代码:

# pip install selenium
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
bot = webdriver.Chrome("chromedriver.exe")
bot.get('http://www.google.com')
search = bot.find_element_by_name('q')
search.send_keys("somenzz")
search.send_keys(Keys.RETURN)
time.sleep(5)
bot.quit()
playwright 示例代码:

#pip install playwright
#playwright install
from playwright.sync_api import sync_playwright
 
with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("http://playwright.dev")
    print(page.title())
    browser.close()
前文:

Python自动化办公-自动录入表单数据

微软开源的浏览器自动化工具-Playwright

4、获取图片的 exif 信息
有两种方法获取,一个是使用 pillow,一个是使用 exifread:

# Get Exif of Photo
# Method 1
# pip install pillow
import PIL.Image
import PIL.ExifTags
img = PIL.Image.open("Img.jpg")
exif_data = 
{
    PIL.ExifTags.TAGS[i]: j
    for i, j in img._getexif().items()
    if i in PIL.ExifTags.TAGS
}
print(exif_data)
 
# Method 2
# pip install ExifRead
import exifread
filename = open(path_name, 'rb')
tags = exifread.process_file(filename)
print(tags)

如果查找并删除 exif 信息,可以看下前文Python自动化办公-玩转图片 中的第三小结-3、删除图片的元数据

你可能感兴趣的:(运维)