python基础(24)常用的第三方模块

1,requests

可以用来访问网站

import requests


if __name__ == '__main__':
    url = "https://www.sogou.com/"
    response = requests.get(url=url)

    page_text = response.text
    print(page_text)

    with open("./sogou.html", mode="w", encoding="utf-8")as fp:
        fp.write(page_text)
    print("爬取数据成功")
import requests


if __name__ == '__main__':
    url = "https://www.sogou.com/web"
    headers = {
        "xxxxxxxxxxxx"
    }
    kw = input("enter a word:")
    param = {
        "query": kw
    }
    response = requests.get(url=url, params=param, headers=headers)

    page_text = response.text
    fileName = kw + ".html"

    with open(fileName, mode="w", encoding="utf-8")as fp:
        fp.write(page_text)
    print(fileName, "爬取数据成功")

2,Pillow

PIL:Python Imaging Library图像处理标准库

from PIL import Image

# 打开一个jpg图像文件,注意是当前路径:
im = Image.open('test.jpg')
# 获得图像尺寸:
w, h = im.size
print('Original image size: %sx%s' % (w, h))
# 缩放到50%:
im.thumbnail((w//2, h//2))
print('Resize image to: %sx%s' % (w//2, h//2))
# 把缩放后的图像用jpeg格式保存:
im.save('thumbnail.jpg', 'jpeg')
from PIL import Image, ImageFilter

# 打开一个jpg图像文件,注意是当前路径:
im = Image.open('test.jpg')
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg')

验证码

"""
生成图片验证码的示例代码,需要提前安装pillow模块(Python中操作图片中一个第三方模块)
	pip3 install pillow
"""
import random
from PIL import Image, ImageDraw, ImageFont


def create_image_code(img_file_path, text=None, size=(120, 30), mode="RGB", bg_color=(255, 255, 255)):
    """ 生成一个图片验证码 """
    _letter_cases = "abcdefghjkmnpqrstuvwxy"  # 小写字母,去除可能干扰的i,l,o,z
    _upper_cases = _letter_cases.upper()  # 大写字母
    _numbers = ''.join(map(str, range(3, 10)))  # 数字
    chars = ''.join((_letter_cases, _upper_cases, _numbers))

    width, height = size  # 宽高
    # 创建图形
    img = Image.new(mode, size, bg_color)
    draw = ImageDraw.Draw(img)  # 创建画笔

    def get_chars():
        """生成给定长度的字符串,返回列表格式"""
        return random.sample(chars, 4)

    def create_lines():
        """绘制干扰线"""
        line_num = random.randint(*(1, 2))  # 干扰线条数

        for i in range(line_num):
            # 起始点
            begin = (random.randint(0, size[0]), random.randint(0, size[1]))
            # 结束点
            end = (random.randint(0, size[0]), random.randint(0, size[1]))
            draw.line([begin, end], fill=(0, 0, 0))

    def create_points():
        """绘制干扰点"""
        chance = min(100, max(0, int(2)))  # 大小限制在[0, 100]

        for w in range(width):
            for h in range(height):
                tmp = random.randint(0, 100)
                if tmp > 100 - chance:
                    draw.point((w, h), fill=(0, 0, 0))

    def create_code():
        """绘制验证码字符"""
        if text:
            code_string = text
        else:
            char_list = get_chars()
            code_string = ''.join(char_list)  # 每个字符前后以空格隔开

        # Win系统字体
        font = ImageFont.truetype(r"C:\Windows\Fonts\SEGOEPR.TTF", size=24)
        # Mac系统字体
        # font = ImageFont.truetype("/System/Library/Fonts/SFNSRounded.ttf", size=24)
        # 项目字体文件
        # font = ImageFont.truetype("SEGOEPR.TTF", size=15)
        draw.text([0, 0], code_string, "red", font=font)
        return code_string

    create_lines()
    create_points()
    code = create_code()

    # 将图片写入到文件
    with open(img_file_path, mode='wb') as img_object:
        img.save(img_object)
    return code


code = create_image_code("a2.png")
print(code)
import random
from PIL import Image, ImageDraw, ImageFont


def get_random_color():
    return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))


def get_validCode_img():
    img = Image.new("RGB", (270, 36), color=get_random_color())
    draw = ImageDraw.Draw(img)
    kumo_font = ImageFont.truetype(r"C:\Windows\Fonts\SEGOEPR.TTF", size=24)
    valid_code_str = ""
    for i in range(5):
        random_num = str(random.randint(0, 9))
        random_low_alpha = chr(random.randint(95, 122))
        random_upper_alpha = chr(random.randint(65, 90))
        random_char = random.choice([random_num, random_low_alpha, random_upper_alpha])
        draw.text((i * 50 + 20, 5), random_char, get_random_color(), font=kumo_font)

        # 保存验证码字符串
        valid_code_str += random_char

    print("valid_code_str", valid_code_str)

    with open(valid_code_str + ".png", mode='wb') as img_object:
        img.save(img_object)

get_validCode_img()

3,pymsql

#导入pymsql
import pymsql

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root123',database='db3',charset='utf8')

#获取光标对象
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) #返回的是一个含有多个字典的列表
#cursor = conn.cursor() #返回的是一个含有多个元组的元组

#执行sql语句

# sql = "select *  from userinfo where name='%s' and password='%s';"%(name,pwd)
# res = cursor.execute(sql)

#解决sql注入的问题
sql = "select * from userinfo where name=%s and password=%s;"

#获得受影响的信息条数
res = cursor.execute(sql,[name,pwd]) #让pymsql帮我们拼接sql语句
print(res)

#获取数据
ret = cursor.fetchall()
print(ret)

#关闭连接
cursor.close()
conn.close()
posted @ 2021-11-04 21:17  下个ID见  阅读(79)  评论(0)    收藏  举报