requests模板

import requests
url=''
params={
}
response=requests.get(url,params).text
print(response)

webdriver模板

from selenium import webdriver
from lxml import etree
browser = webdriver.Chrome()
url = "https://www.baidu.com"
# 开始请求
browser.get(url)
#得到页面源代码
response=browser.page_source   #字符串形式
print(response)
html=etree.HTML(response)

#提取信息
title=html.xpath['']

#关闭浏览器
browser.quit()
#关闭chreomedriver进程
browser.close()

python快速打开网页

import sys
import webbrowser
sys.path.append("libs")
url = 'https://www.toutiao.com/'
webbrowser.open(url)

查看本地ip

import socket
hostname = socket.gethostname()
ipaddr = socket.gethostbyname(hostname)
print("您当前的主机名为" + hostname + "\n您当前的IP地址为" + ipaddr)

去重

不要直接用set,会有问题玛德、、、

old_data=[]
new_data=[]
for i in range(len(old_data)):
    row_values=[str(value).strip() for value in old_data[i]]
    # print(tuple(row_values))
    new_data.append(tuple(row_values))
new_data=list(set(tuple(new_data)))
print(new_data)

获取日期

import time
 
# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) 
 
# 格式化成Sat Mar 28 22:24:24 2016形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())) 
  
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

通过秒来格式化日期

from datetime import timedelta
time_dif = 5
print(timedelta(seconds=int(time_dif)))
# 得到00:00:5

时间戳与日期互换

import time
 
 
def strftime(timestamp, format_string='%Y-%m-%d %H:%M:%S'):
    return time.strftime(format_string, time.localtime(timestamp))
 
def strptime(string, format_string='%Y-%m-%d %H:%M:%S'):
    return time.mktime(time.strptime(string, format_string))
 
 
print(strftime(time.time()))
 
print(strptime('2018-10-11 15:08:24'))

发送邮件

在QQ邮箱的设置→账户中开启POP3/SMTP服务,保存返回的身份验证码

'''
这里针对smtplib做了一系列封装,可以完成以下四种场景:
发送纯文本的邮件
发送html页面的邮件
发送带附件文件的邮件
发送能展示图片的邮件
以上四种场景,已经做好了二次封装,经测试OK,使用时直接传入对应参数即可,直接上代码
'''

import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart


class SendEMail(object):
    """封装发送邮件类"""

    def __init__(self, host, port, msg_from, pwd):

        self.msg_from = msg_from
        self.password = pwd

        # 邮箱服务器地址和端口
        self.smtp_s = smtplib.SMTP_SSL(host=host, port=port)

        # 发送方邮箱账号和授权码
        self.smtp_s.login(user=msg_from, password=pwd)

    def send_text(self, to_user, content, subject, content_type='plain'):
        """
        发送文本邮件
        :param to_user: 对方邮箱
        :param content: 邮件正文
        :param subject: 邮件主题
        :param content_type: 内容格式:'plain' or 'html'
        :return:
        """
        msg = MIMEText(content, _subtype=content_type, _charset="utf8")

        msg["From"] = self.msg_from
        msg["To"] = to_user
        msg["subject"] = subject

        self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)

    def send_file(self, to_user, content, subject, reports_path, filename, content_type='plain'):
        """
        发送带文件的邮件
        :param to_user: 对方邮箱
        :param content: 邮件正文
        :param subject: 邮件主题
        :param reports_path: 文件路径
        :param filename: 邮件中显示的文件名称
        :param content_type: 内容格式
        """

        file_content = open(reports_path, "rb").read()

        msg = MIMEMultipart()

        text_msg = MIMEText(content, _subtype=content_type, _charset="utf8")
        msg.attach(text_msg)

        file_msg = MIMEApplication(file_content)
        file_msg.add_header('content-disposition', 'attachment', filename=filename)
        msg.attach(file_msg)

        msg["From"] = self.msg_from
        msg["To"] = to_user
        msg["subject"] = subject

        self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)

    def send_img(self, to_user, content ,subject,  filename, content_type='html'):
        '''
        发送带图片的邮件
        :param to_user: 对方邮箱
        :param content: 邮件正文
        :param subject: 邮件主题
        :param filename: 图片路径
        :param content_type: 内容格式
        '''
        subject = subject
        msg = MIMEMultipart('related')
        # Html正文必须包含<img src="cid:imageid" alt="imageid" width="100%" height="100%>
        content = MIMEText(content, _subtype=content_type, _charset="utf8")
        msg.attach(content)
        msg['Subject'] = subject
        msg['From'] = self.msg_from
        msg['To'] = to_user

        with open(filename, "rb") as file:
            img_data = file.read()

        img = MIMEImage(img_data)
        img.add_header('Content-ID', 'imageid')
        msg.attach(img)

        self.smtp_s.sendmail(self.msg_from, to_user, msg.as_string())


sendemail=SendEMail('smtp.qq.com',465,'自己的邮箱','返回的身份验证码')
sendemail.send_text('对方邮箱','正文','主题:测试发送文本')
# sendemail.send_img('对方邮箱','正文','主题:测试发送图片','图片地址')
sendemail.send_file('对方邮箱','正文','主题:测试发送文件','文件地址','对方接收时显示的文件名')

批量制作下一文件夹路径

import os
#获取文件目录
filenamelist=os.listdir('./光明网-新闻-当阳市-2')
for filename in filenamelist:
    address = './光明网-新闻-当阳市-2/' + filename
    print(os.path.abspath(address))#显示当前的绝对目录

获取某文件夹中指定类型文件

import os
path1=r'./'
for root, dirs, files in os.walk(path1):
    print(root)
    print(dirs)
    print(files)
    for file in files:
        if file.endswith('.py'):
            print(os.path.join(root,file))

汉语转拼音

import pypinyin

# 关于style
'''
    普通风格,不带声调。如: 中国 -> ``zhong guo``
    NORMAL = 0

    标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> ``zhōng guó``
    TONE = 1

    声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``zho1ng guo2``
    TONE2 = 2

    声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``zhong1 guo2``
    TONE3 = 8

    声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 `#27`_)。如: 中国 -> ``zh g``
    INITIALS = 3

    首字母风格,只返回拼音的首字母部分。如: 中国 -> ``z g``
    FIRST_LETTER = 4

    韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ``ong uo``
    FINALS = 5

    标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ``ōng uó``
    FINALS_TONE = 6

    韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``o1ng uo2``
    FINALS_TONE2 = 7

    韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``ong1 uo2``
    FINALS_TONE3 = 9

    注音风格,带声调,阴平(第一声)不标。如: 中国 -> ``ㄓㄨㄥ ㄍㄨㄛˊ``
    BOPOMOFO = 10

    注音风格,仅首字母。如: 中国 -> ``ㄓ ㄍ``
    BOPOMOFO_FIRST = 11

    汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``чжун1 го2``
    CYRILLIC = 12

    汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ``ч г``
    CYRILLIC_FIRST = 13
'''

# 不带声调的(style=pypinyin.NORMAL)
def pinyin(word):
    s = ''
    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL,heteronym =True):  # heteronym是检测多音字
        s += ''.join(i)
        print(i)
    return s

# 带声调的(默认)
def yinjie(word):
    s = ''
    # heteronym=True开启多音字
    for i in pypinyin.pinyin(word, heteronym=True):
        s = s + ''.join(i) + " "
    return s

if __name__ == "__main__":
    print(pinyin("忠厚传家久"))
    print(yinjie("诗书继世长"))

生成词云

import wordcloud
def biaozhun():  # 添加字符和生成图片
    w=wordcloud.WordCloud()
    #w.generate(txt)向WordCloud对象w中加载文本txt
    w.generate("Python and WordCloud") 
    #w.to_file(filename) #将词云输出为图像文件,png或jpg格式
    w.to_file("outfile.png")
def qitacanshu():  # 其他参数
    w=wordcloud.WordCloud(width=600,height=400,
                          min_font_size=10,max_font_size=20,\
                          font_path='msyh.ttc',\
                          max_words=20,stop_words={'Python'},\
                          background_color='white'
                          )
    # width=600,height=400,设置图片大小
    # min_font_size=10,max_font_size=20,设置字体大小,最大最小
    # font_path='msyh.ttc',设置字体路径,这是微软雅黑
    # max_words=20,指定词云最多显示多少个词
    # stop_words={'Python'},指定词云不显示的词
    # background_color='white'设置背景色为白色
    w.generate("Python and WordCloud")
    from scipy.misc import imread
    mk=imread('path')
    w=wordcloud.WordCloud(mask=mk)  #设置展示的形状
	# 保存图片
    w.to_file("outfile.png")

使用urllib库将汉字转为%编码

from urllib import parse
key_word = input('请输入关键字:')
parses={
'keyword':key_word
}
strs=parse.urlencode(parses)
print(strs)  #word=%E9%93%B6%E8%A1%8C
print(type(strs))  #<class 'str'>