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'>