本来这么晚是不准备写博客的,当是想到了那个狗子绝对会在开学的时候跟我逼逼这个事情,所以,还是老老实实地写一下吧。
系统环境:
Python2
-
<李>请求库:发出请求李>
<李> json库:json处理李>
<强> getSiteList的使用强>
官方文档在此,说实话,这是我使用百BaiduAPI最坑的一次,在这个官方文档的getSiteList中,完全不告诉你请求参数是什么。
首先,需要获得百度统计API的令牌,在这里写了令牌获得的流程。
#=utf - 8编码 进口的要求 进口json siteListUrl=" https://api.baidu.com/json/tongji/v1/ReportService/getSiteList " #这个是请求的数据 data=https://www.yisu.com/zixun/{"头":{ “用户名”:“你的用户名”, “密码”:“你的密码”, “令牌”:“前面所获得的令牌”, “内容类型”:“application/json” } } #把请求数据变成json数据 data=https://www.yisu.com/zixun/json.dumps(数据) r=requests.post (url, data=数据) #在返回的信息中包含了网站的id等等,这些官方有说明 打印r.text
getData的使用
#假设我的网站的账号是:12914021, getDataUrl=" https://api.baidu.com/json/tongji/v1/ReportService/getData " #请求数据如下 data=https://www.yisu.com/zixun/{"头":{ “用户名”:“你的用户名”, “密码”:“你的密码”, “令牌”:“前面所获得的令牌”, “内容类型”:“application/json” }, #这个身体的请求参数可以去参考官方说明,在这里我只是想获取pv和紫外线的数据 “身体”:{ “site_id”: 12914021, “方法”:“趋势/时间/? #开始统计时间 “start_date”:“20190125”, #结束统计时间 “end_date”:“20190126”, #获得pv和紫外线数据 “指标”:“pv_count visitor_count’ } } r=requests.post (getDataUrl, data=https://www.yisu.com/zixun/json.dumps(数据)) 结果=json.loads (r.text) pv_uv=结果(“身体”)(“数据”)[0]["结果"][“pageSum”] [0] #页面浏览量 pv=pv_uv [0] #独立访客数 紫外线=pv_uv [1] 打印pv_uv #例如[120100]
此时,我们就已经获得了pv和nv的数据。
Python2
-
<李>请求库:发出请求李>
<李> json库:json处理李>
在这里,我使用的是SMTP协议去发送邮件,使用的是QQ邮箱,QQ邮箱的开启,参考百度经验。
从email.mime。文本导入MIMEText 从电子邮件。头导入头 从smtplib进口SMTP_SSL # qq邮箱smtp服务器 hostServer=' smtp.qq.com ' #发送者的邮箱 sendMail='你的QQ邮箱” receiveMail='接收方的邮件地址” # ssl登录 smtp=SMTP_SSL (hostServer) #发送者的QQ,以及授权码 smtp。登录(“你的qq”、“授权码”) #纯代表发送为文本 味精=MIMEText(“你要发送的内容”,“普通”,“utf - 8”) #发送的标题 味精(“主题”)=标题(“帅哥的邮件”,“utf - 8”) #发送方 味精(“的”)=sendMail #接收方 味精”到“=receiveMail #发送邮件 smtp。sendmail (sendmail, receiveMail msg.as_string ()) #退出 smtp.quit ()
代码写的耦合度比较高,如果使用的话,需要根据自己的实际情况去修改
#=utf - 8编码 导入的时间 进口的要求 进口json 从email.mime。文本导入MIMEText 从电子邮件。头导入头 从smtplib进口SMTP_SSL #获得时间格式为:【20190125】 nowTime=trftime (“% Y % m % d”, time.localtime ()) #发送方的QQ sendQQ=" xxx " #接收方的邮件地址 receiveMail=" xxx " #百度统计令牌 令牌=" xxx " #需要查询的网站id siteId=xxx # qq邮箱授权码 mailCode=" xxx " def get_pv_uv (): dataUrl=" https://api.baidu.com/json/tongji/v1/ReportService/getData " 身体={ "头":{ “用户名”:“xxx”, “密码”:“xxx”, “令牌”:令牌, “内容类型”:“application/json” }, “身体”:{ “site_id”: siteId, “方法”:“趋势/时间/? “start_date”: nowTime, “end_date”: nowTime, “指标”:“pv_count visitor_count’ } } r=请求。帖子(dataUrl, data=https://www.yisu.com/zixun/json.dumps(身体)) 结果=json.loads (r.text) pv_uv=结果(“身体”)(“数据”)[0]["结果"][“pageSum”] [0] 返回pv_uv def sendMail (pv_uv): #邮件的正文内容 mailContent="小主,晚上好,这是昨天的统计数据,昨天的博客园一共有% s个人访问了小主你的博客,其中独立访客有% s位。\ n小主你要加油写博客哦,有朝一日,你总会成为大佬的!(* ^ __ ^ *)嘻嘻……“% (pv_uv [0], pv_uv [1]) # qq邮箱smtp服务器 hostServer=' smtp.qq.com ' sendEmail=sendQQ +“@qq.com” # ssl登录 smtp=SMTP_SSL (hostServer) smtp。登录(sendQQ mailCode) 味精=MIMEText (mailContent,“普通”,“utf - 8”) 味精(“主题”)=标题(“博客园统计邮件”,“utf - 8”) 味精(“的”)=sendEmail 味精”到“=receiveMail smtp。sendmail (sendEmail receiveMail msg.as_string ()) smtp.quit () sendMail (get_pv_uv ())Python如何获得百度统计API的数据并发送邮件示例代码