Python基础知识总结笔记(七)常用第三方库

Python基础知识总结笔记(七)常用第三方库

  1. argparse:命令行参数解析库
  2. pillow:图片处理库
  3. requests:处理web请求库

1. argparse:命令行参数解析库

  1. 将下面代码保存1.py
  2. 终端输入 :(即可看到传进来参数)

python test.py -c Config --spider XSpider -t 10

import argparse#库#命令行参数

def parse_args():
	#1.创建ArgumentParser()对象
    parser = argparse.ArgumentParser()#自动传入系统当前参数
    #2.调用add_argument()方法添加参数。
    parser.add_argument('-c', #-c指向config文件(缩写)
                        '--config', #--config指向config文件(全称)
                        default='ds_config') # Assign config file, don't use '.py' suffix. 
    parser.add_argument('-s',
                        '--spider',
                        help='',
                        default='spider_sample') # Assign spider file, don't use '.py' suffix.
    parser.add_argument('-t',
                        '--thread_count',
                        help='',
                        default=0,    #设定默认值
                        type=int)#设定类型,自动类型转换
    #3.调用parse_args()解析添加的参数。
    return parser.parse_args()
    
if __name__ == '__main__':
    args = parse_args()
    print(args.config)#属性
    print(args.spider)
    print(args.thread_count)
    

2. pillow:图片处理库

# pillow图片处理
from PIL import Image, ImageFilter
#打印字、模糊效果、字旋转。验证码原理
im = Image.open('girl.jpg')
w, h = im.size
print('with = %d, height = %d' % (w, h))
im.thumbnail((w // 2, h // 2))#缩小
im.save('girl_thumb.jpg')#生成缩略图

im = Image.open('girl.jpg')
im2 = im.filter(ImageFilter.BLUR)#
im2.save('girl_blur.jpg', 'jpeg')#生成模糊化图

3. requests:处理web请求库

# requests处理web请求
import requests
url = 'http://www.baidu.com'
r = requests.get(url)#打开网页
# print(r.text)#返回内容
print(r.status_code)#状态200:成功,404:未找到,400:没有权限,503/500:服务器出现问题
print(r.encoding)#页面编码形式
text = r.text.encode('ISO-8859-1').decode('utf-8') # 中文乱码——页面声明的编码与实际编码不符
#encode()用'ISO-8859-1'编码方式还原成字节(二进制),decode()用utf-8进行编码
print(text)


r = requests.get('https://github.com/timeline.json')#请求返回json格式字符串
print(r.text)
# print(r.json())  #通过json转化成字典形式。无需在用文件进行处理
j_data = r.json()
print(j_data['documentation_url'])


r = requests.get('http://i-2.shouji56.com/2015/2/11/23dab5c5-336d-4686-9713-ec44d21958e3.jpg', stream = True)
#处理二进制图片--用stream方式边读边打开
with open('meinv2.jpg', 'wb+') as f:
    for chunk in r.iter_content(1024):
        f.write(chunk)

# 利用requests实现豆瓣模拟登陆
from bs4 import BeautifulSoup# bs4:页面元素定位和解析

ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'#模仿某平台浏览器
headers ={'user-agent':ua}#http请求头
url_login = 'https://accounts.douban.com/login'#豆瓣登陆入口url,登陆请求通过此url发送

session = requests.Session()
formdata = {'redir':'https://www.douban.com',#登陆时提供的表单
            'form_email':'账户',
            'form_password':'密码'}
resp = session.post(url_login,#发送请求
                    data=formdata,
                    headers=headers)
bs = BeautifulSoup(resp.text, 'html5lib')#构造BeautifulSoup解析器
captcha = bs.select('img#captcha_image')#bs查看是否有验证码。
if captcha:
    captcha = captcha[0]
    # 处理验证码
    print(captcha.text)
    img_url = captcha.get('src').strip()
    print(img_url)#打印验证码图片链接
    id_ = img_url.split('?')[1].split('&')[0].split('=')[1]#
    text = input('请输入验证码')
    formdata['captcha-solution'] = text
    formdata['captcha-id'] = id_
    resp = session.post(url_login,
                        data=formdata,
                        headers=headers)
with open('douban.txt', 'w+', encoding='utf-8') as f:
    f.write(resp.text)
    
发布了201 篇原创文章 · 获赞 278 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/qq_37486501/article/details/104451437