2019年9月4日 | 标签:

标题:

——————————————————————————————————————————-

时间:2018/12/3 22:00:13

——————————————————————————————————————————-

内容:

之前写过一篇 入门版本的PHP 代码使用百度api的文章,反响很强烈,

http://cotine.blog.hexun.com/115925850_d.html

原因是网上这方面的资料非常少,并且因为百度API代码更新比较快,许多教程都无法使用,即使是百度官方网站信息藏的也很深 甚至有些信息已经过期 ,自己也是摸索了很久 才最后搞清楚,文末附上所有代码  在这里记录下 方便后人

Baidu API原理部分

使用PHP的Curl函数通过Post方法传参数给百度,百度会以json格式返回需要的数据

请求的URL部分:

不同的请求报告 会使用不同的URL来处理

具体是URL是

https://api.baidu.com/json/sms/service/XXXService/getXXX

例如请求账户报告是

https://api.baidu.com/json/sms/service/AccountService/getAccountInfo

如请求计划报告则使用

https://api.baidu.com/json/sms/service/CampaignService/getCampaign

后面会介绍所有的请求对应的URLs

请求的参数部分:

在Post方法中把需要查询的参数传递给百度URL

参数是一个字符串,包含2个对象的json,一个是header 里面放入了帐号密码等信息,一个是body,是需要读取的参数

Header参数

在这个查询的参数中包括了百度推广帐号的帐号 密码以及token,不知道token的需要在百度后台去申请,此处不介绍 附上申请token介绍网址

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=2&nodeId=55&pageId=100&url=

Body参数

 

参数是也是以json形式来书写,以对象和属性来书写,例如

账户的body是这样写的

         “body”:{

        “accountFields”:[“balance”]

    }

其中 对象是accountfields 属性是balance

更多的对象和属性可以查找开发手册不做赘述

如果需要更详细的 可以参考开发手册

只会会有详细的运用部分

再附上一个根据计划名称 获取计划信息的代码截图

具体代码例子 可以下载

链接: https://pan.baidu.com/s/1jxDvYwwdVmGj1tQSmESNIg

提取码: sc6n

写在最后

Baidu API这东西还是入门比较难,有了具体并且简单的代码例子 定制开发就很简单了,百度之前给的例子属于重量级 相当于百科全书,如下

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=3&nodeId=128&pageId=37&url=

,很多场景下 需要结合自己的业务去延展,这个时候去查百科全书 比较麻烦,所以本文使用最简单的代码 带着初学者体验下百度推广的API功能,让新手也能感受它的优势,并且可以方便去移植代码填入自己的业务板块中 而不用全搬整个例子库

之前写过一篇 入门版本的PHP 代码使用百度api的文章,反响很强烈,

http://cotine.blog.hexun.com/115925850_d.html

原因是网上这方面的资料非常少,并且因为百度API代码更新比较快,许多教程都无法使用,即使是百度官方网站信息藏的也很深 甚至有些信息已经过期 ,自己也是摸索了很久 才最后搞清楚,文末附上所有代码  在这里记录下 方便后人

查看更多精彩图片

Baidu API原理部分

使用PHP的Curl函数通过Post方法传参数给百度,百度会以json格式返回需要的数据

请求的URL部分:

不同的请求报告 会使用不同的URL来处理

具体是URL是

https://api.baidu.com/json/sms/service/XXXService/getXXX

例如请求账户报告是

https://api.baidu.com/json/sms/service/AccountService/getAccountInfo

如请求计划报告则使用

https://api.baidu.com/json/sms/service/CampaignService/getCampaign

后面会介绍所有的请求对应的URLs

请求的参数部分:

在Post方法中把需要查询的参数传递给百度URL

参数是一个字符串,包含2个对象的json,一个是header 里面放入了帐号密码等信息,一个是body,是需要读取的参数

Header参数

在这个查询的参数中包括了百度推广帐号的帐号 密码以及token,不知道token的需要在百度后台去申请,此处不介绍 附上申请token介绍网址

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=2&nodeId=55&pageId=100&url=

Body参数

 

参数是也是以json形式来书写,以对象和属性来书写,例如

账户的body是这样写的

         “body”:{

        “accountFields”:[“balance”]

    }

其中 对象是accountfields 属性是balance

更多的对象和属性可以查找开发手册不做赘述

如果需要更详细的 可以参考开发手册

只会会有详细的运用部分

再附上一个根据计划名称 获取计划信息的代码截图

具体代码例子 可以下载

链接: https://pan.baidu.com/s/1jxDvYwwdVmGj1tQSmESNIg

提取码: sc6n

写在最后

Baidu API这东西还是入门比较难,有了具体并且简单的代码例子 定制开发就很简单了,百度之前给的例子属于重量级 相当于百科全书,如下

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=3&nodeId=128&pageId=37&url=

,很多场景下 需要结合自己的业务去延展,这个时候去查百科全书 比较麻烦,所以本文使用最简单的代码 带着初学者体验下百度推广的API功能,让新手也能感受它的优势,并且可以方便去移植代码填入自己的业务板块中 而不用全搬整个例子库

2019年9月3日 | 标签:

背景介绍

最近公司招新实习生,在实习僧网站投放招聘信息以后,收到大量的学生的邮件,3天时间收到300多封
我们需要安排学校  学历(研究生 本科)毕业年级(今年或者明年)进行筛选
想着就是把邮件的信息复制到excel中 在进行各种筛选
但是一个手工复制到excel不现实
所以想着有什么方便的办法把 批量把outlook中的邮件中文复制到excel
解决方法
先想着使用了vba的办法,但是每次只能粘贴了几十个就不行了
就是不知道原因
然后无意间看到outlook有导出到excel的功能 可以包含邮件的正文
这样再用excel的提取字符串命令即可
下面是视频的方法
也可以使用百度搜索 outlook 导出到csv即可
关键是思路
点击outlook上方的文件
选择打开或导出
选择要导出的文件夹(可以提前 使用搜索命令 把要导出的文件放到临时文件夹中)
然后导出到csv文件
这个csv文件要使用excel打开 否则会事乱码哦
最后使用excel的find命令查找特征字符串的位置 再使用mid命令
截取我们需要的字符串

查看更多精彩图片

背景介绍

最近公司招新实习生,在实习僧网站投放招聘信息以后,收到大量的学生的邮件,3天时间收到300多封
我们需要安排学校  学历(研究生 本科)毕业年级(今年或者明年)进行筛选
想着就是把邮件的信息复制到excel中 在进行各种筛选
但是一个手工复制到excel不现实
所以想着有什么方便的办法把 批量把outlook中的邮件中文复制到excel
解决方法
先想着使用了vba的办法,但是每次只能粘贴了几十个就不行了
就是不知道原因
然后无意间看到outlook有导出到excel的功能 可以包含邮件的正文
这样再用excel的提取字符串命令即可
下面是视频的方法
也可以使用百度搜索 outlook 导出到csv即可
关键是思路
点击outlook上方的文件
选择打开或导出
选择要导出的文件夹(可以提前 使用搜索命令 把要导出的文件放到临时文件夹中)
然后导出到csv文件
这个csv文件要使用excel打开 否则会事乱码哦
最后使用excel的find命令查找特征字符串的位置 再使用mid命令
截取我们需要的字符串
查看更多精彩图片
2019年7月29日 | 标签:

因为需要去百度后台去取一些报告数据(有的百度产品是没有提供API接口)所有需要模拟cookie去后台下载数据,但是百度的cookie是有15分钟的有效期,所以要么挂一个线程每15分钟用这个cookie去百度那边续命下(目前是用google sheets的脚本加定时器这么弄)但是 还有一个问题无法解决,如果有人登录了这个账号后再注销 这个cookie也会作废,所以使用cookie不是万全之策 除非单独出一个不会有人登录的账户 那这个账号的cookie就可以长期稳定的取数

 

还有一种方法就是模拟登录,拿到新鲜cookie

但是百度和其他搜索引擎的广告后台都是有验证码 无法直接登录

所以第一步就是验证码识别

试过了几个平台 还是觉得 有个平台的验证率最高 因为是人工识别 百度自己的 大数据识别 不准。。

而且打码的价格很低,1块钱可以识别1000个验证码。。足够用了

真没必要去弄机器学习识别验证码

下面是过程

http://www.chaojiying.com/api-14.html

下载python案例文件

有几个错误地方要小心 需要是python3  这个例子是python2 print这边需要加括号

然后缩进要注意点

其他还好

然后把下面几行换成

if __name__ == ‘__main__’:
jpg_link = “https://cas.baidu.com/?action=image2&appid=3″
path=”5566.jpg”
request.urlretrieve(jpg_link, path)
chaojiying = Chaojiying_Client(‘账号’, ‘密码’, ‘后台id’) #用户中心>>软件ID 生成一个替换 96001
im = open(path, ‘rb’).read()
print(chaojiying.PostPic(im, 1902)[“pic_str”])

 

即可 如下图所示


 

 

 

 

 

是不是很方便

提供下全文代码吧

#!/usr/bin/env python
# coding:utf-8
import requests
from urllib import request
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
password = password.encode(‘utf8’)
self.password = md5(password).hexdigest()
self.soft_id = soft_id
self.base_params = {
‘user’: self.username,
‘pass2’: self.password,
‘softid’: self.soft_id,
}
self.headers = {
‘Connection’: ‘Keep-Alive’,
‘User-Agent’: ‘Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)’,
}
def PostPic(self, im, codetype):
“””
im: 图片字节
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
“””
params = {
‘codetype’: codetype,
}
params.update(self.base_params)
files = {‘userfile’: (‘ccc.jpg’, im)}
r = requests.post(‘http://upload.chaojiying.net/Upload/Processing.php’, data=params, files=files, headers=self.headers)
return r.json()
def ReportError(self, im_id):
“””
im_id:报错题目的图片ID
“””
params = {
‘id’: im_id,
}
params.update(self.base_params)
r = requests.post(‘http://upload.chaojiying.net/Upload/ReportError.php’, data=params, headers=self.headers)
return r.json()
if __name__ == ‘__main__’:
jpg_link = “https://cas.baidu.com/?action=image2&appid=3″
path=”5566.jpg”
request.urlretrieve(jpg_link, path)
chaojiying = Chaojiying_Client(‘我的账号’, ‘我的密码’, ‘900784’) #用户中心>>
im = open(path, ‘rb’).read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(chaojiying.PostPic(im, 1902)[“pic_str”])