python爬虫——百度文本审核技术
hello大家好我还是那个萌新,今天给大家带来用post爬取百度文本审核技术的文章!
百度文本审核技术(如图 ):
目标:在终端输入文字,获取网页响应结果。
网址:https://ai.baidu.com/tech/textcensoring
F12打开测试工具,选择Natwork,然后在网页中输入任意文字,点击分析,可以发现响应列表中多出了一个叫aidemo的请求:
显而易见,这个请求就是api接口~
点开查看:
hhhh简单了吧~直接调用接口即可~
代码如下:
import requestsurl = 'https://ai.baidu.com/aidemo'text = input('输入需要审核的文字(最多200字): ')data = {'content': text,
'type': 'textcensor',
'apiType': 'censor',
'requestTime': '1628780167667',
'token': '2fe1cba870'}headers = {'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-length': '103',
'content-type': 'application/x-www-form-urlencoded',
'cookie': 'BAIDUID_BFESS=EAB301E34BAB5B3829977A4FDE00ED44:FG=1; BAIDUID=EAB301E34BAB5B385D72A84F2B5F0276:FG=1; BIDUPSID=EAB301E34BAB5B385D72A84F2B5F0276; PSTM=1628757735; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; __yjs_duid=1_cc834c6c33b9da38de2c8e4c95cf28491628775855270; Hm_lvt_8b973192450250dd85b9011320b455ba=1628775852; Hm_lpvt_8b973192450250dd85b9011320b455ba=1628780471; ab_sr=1.0.1_YjI5OTFlOWQ5OWI1ZjIwM2NmN2U5M2QyMTFiYjY2NWUxY2QxMWJhOTliOGYyN2Q1YWYwM2JhY2ZmZDU0NmQ4NTU1ZTJiNDRiN2RjMWRjOTNjYjdiNTE0YmFiOGQ3ZDE4NjljNmQ0MDk3NTg2N2QyZDJiZDA0OGI4MDdmYzRlYzkzMDI3M2Q1NWJhMzgwMzdhZDE1MGUyNGQ2MWM5MmMwMw==; __yjs_st=2_MjYxNDkyMTMwMWNiNzM2ZGU4NDM0NmQ4YTcyMTM2MTgxMTU0OWY5NzU4NzY2NjI0OTRiNTkyN2VjZjg0MDIwMjBiMWY1Zjg1YzFjNjNiY2QxNzliY2JlZWU0N2YwNGJlYjA5YzhiYzk0NGRhNTMxNGJjMjYxMjE1M2Y5YjJhNWQ1ZDE4NzFlMTNlM2VmODc2MTNlY2NlN2NlMDRkMDE1NDA2NjI1MzY5YmU0YTY4Mzc1YWYzYjRiNzUxZDRiYmJkMzRlODIyMTFiYWE3YjhjMjlhM2RmZDZkOTQ5OGRlMmQ5MjRkNWM2YWJlNDNkM2JjNmYzNzlmMTk4YmYzMmQxYl83X2U4YzNlODYy',
'origin': 'https://ai.baidu.com',
'referer': 'https://ai.baidu.com/tech/textcensoring',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
res = requests.post(url,data=data,headers=headers)
但是,有时候会出现如下情况:
这时候正常人会重新点击分析按钮,所以我们要重新发送请求,直到请求成功,于是代码可以写成这样:
def posts():global js,resres = requests.post(url,data=data,headers=headers)js = res.json()try:posts()
except:posts()
这样就可以一直请求直到成功
接下来可能比较难
点击测试工具的Preview查看:
展开data,data下有一个result,同样展开,下面有pass和reject(如果审核通过就没有reject),pass和reject下有数字(范围0~5):
全部展开,发现每个数字下面都有一个score,明显就是我们要的数据
↑↑↑↑↑↑↑↑↑↑↑↑↑pass数字下的score对应的是通过项的分数 ↑↑↑↑↑↑↑↑↑↑↑↑↑
↑↑↑↑↑↑↑↑↑↑↑↑↑reject下对应的就是不通过的分数啦 ↑↑↑↑↑↑↑↑↑↑↑↑↑
rights = js['data']['result']['pass']
wrongs = js['data']['result']['reject']
for worng in wrongs:y = round(float(worng['score']),3)print('{} 分数:{}'.format(y))print('\n')
print('--------------------------------------------')for right in rights:y = round(float(right['score']),3)print('{} 分数:{}'.format(y))print('\n')
提取各项的分数,然后用round四舍五入到小数点第三位
只输出分数当然不行,谁知道这些分数代表什么啊?
我们要把分数和名称一一对应,我的方法是建立一个字典:
dic = {'1':'暴恐违禁','2':'文本色情','3':'政治敏感','4':'恶意推广','5':'低俗辱骂','6':'低质灌水'}
这些序号可以在data→result→pass/reject→label找到
下面是代码:
dic = {'1':'暴恐违禁','2':'文本色情','3':'政治敏感','4':'恶意推广','5':'低俗辱骂','6':'低质灌水'}rights = js['data']['result']['pass']
wrongs = js['data']['result']['reject']
for worng in wrongs:x = dic[str(worng['label'])]y = round(float(worng['score']),3)print('{} 分数:{}'.format(x,y))print('\n')
print('--------------------------------------------')for right in rights:x = dic[str(right['label'])]y = round(float(right['score']),3)print('{} 分数:{}'.format(x,y))print('\n')
我们还需要测试的综合结果:
全部代码:
import requestsurl = 'https://ai.baidu.com/aidemo'text = input('输入需要审核的文字(最多200字): ')data = {'content': text,
'type': 'textcensor',
'apiType': 'censor',
'requestTime': '1628780167667',
'token': '2fe1cba870'}headers = {'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-length': '103',
'content-type': 'application/x-www-form-urlencoded',
'cookie': 'BAIDUID_BFESS=EAB301E34BAB5B3829977A4FDE00ED44:FG=1; BAIDUID=EAB301E34BAB5B385D72A84F2B5F0276:FG=1; BIDUPSID=EAB301E34BAB5B385D72A84F2B5F0276; PSTM=1628757735; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; __yjs_duid=1_cc834c6c33b9da38de2c8e4c95cf28491628775855270; Hm_lvt_8b973192450250dd85b9011320b455ba=1628775852; Hm_lpvt_8b973192450250dd85b9011320b455ba=1628780471; ab_sr=1.0.1_YjI5OTFlOWQ5OWI1ZjIwM2NmN2U5M2QyMTFiYjY2NWUxY2QxMWJhOTliOGYyN2Q1YWYwM2JhY2ZmZDU0NmQ4NTU1ZTJiNDRiN2RjMWRjOTNjYjdiNTE0YmFiOGQ3ZDE4NjljNmQ0MDk3NTg2N2QyZDJiZDA0OGI4MDdmYzRlYzkzMDI3M2Q1NWJhMzgwMzdhZDE1MGUyNGQ2MWM5MmMwMw==; __yjs_st=2_MjYxNDkyMTMwMWNiNzM2ZGU4NDM0NmQ4YTcyMTM2MTgxMTU0OWY5NzU4NzY2NjI0OTRiNTkyN2VjZjg0MDIwMjBiMWY1Zjg1YzFjNjNiY2QxNzliY2JlZWU0N2YwNGJlYjA5YzhiYzk0NGRhNTMxNGJjMjYxMjE1M2Y5YjJhNWQ1ZDE4NzFlMTNlM2VmODc2MTNlY2NlN2NlMDRkMDE1NDA2NjI1MzY5YmU0YTY4Mzc1YWYzYjRiNzUxZDRiYmJkMzRlODIyMTFiYWE3YjhjMjlhM2RmZDZkOTQ5OGRlMmQ5MjRkNWM2YWJlNDNkM2JjNmYzNzlmMTk4YmYzMmQxYl83X2U4YzNlODYy',
'origin': 'https://ai.baidu.com',
'referer': 'https://ai.baidu.com/tech/textcensoring',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}def posts():global js,resres = requests.post(url,data=data,headers=headers)js = res.json()try:posts()
except:posts()print(res,'\n')dic = {'1':'暴恐违禁','2':'文本色情','3':'政治敏感','4':'恶意推广','5':'低俗辱骂','6':'低质灌水'}rights = js['data']['result']['pass']
wrongs = js['data']['result']['reject']
yesornot = Falsefor worng in wrongs:yesornot = Truex = dic[str(worng['label'])]y = round(float(worng['score']),3)print('{} 分数:{}'.format(x,y))print('\n')
print('--------------------------------------------')for right in rights:x = dic[str(right['label'])]y = round(float(right['score']),3)print('{} 分数:{}'.format(x,y))print('\n')if yesornot == True:print('综合评价:审核不通过')
else:print('综合评价:审核通过')
输出结果:
画质不行,大家有好的工具推荐一下~
以上就是全部内容,谢谢阅读,点个赞再走吧~
python爬虫——百度文本审核技术相关推荐
- 连享会-Python爬虫与文本分析专题 (2019.5.17-19)
连享会-Python爬虫与文本分析专题研讨班 文章目录 连享会-Python爬虫与文本分析专题研讨班 1. 课程概览 2. 嘉宾简介 3. 授课内容 3.1 课程介绍 为什么要学爬虫和文本分析? 为什 ...
- python爬虫与文本数据分析 系列课
在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而是数据科学家,尤其是社会科学家,涵盖的学科有经济学.管 ...
- Python爬虫百度云加速验证码问题
Python爬虫百度云加速验证码问题 问题描述 解决思路 实现代码 最终结果 问题描述 第一篇博文:低手,刚学,求勿喷. 前段时间,使用爬虫访问一个磁力链接下载网站(target_url),收集电影下 ...
- python爬虫百度百科-python爬虫(一)_爬虫原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...
- 百度文本审核api_利用百度ai实现文本和图片审核
之前做平台内容发布审核都是自己构建一套违禁词库,在代码中利用词库判断用户发布的内容,现在可以使用百度ai api完成这个功能.接下来就简单说下怎么做吧: 首先打开百度ai 开发平台 注册一个账号 进入 ...
- python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...
实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...
- Python爬虫——百度+新浪微盘下载歌曲
本篇分享将讲解如何利用Python爬虫在百度上下载新浪微盘里自己想要的歌手的歌曲,随便你喜欢的歌手! 首先我们先探索一下我们操作的步骤(以下载Westlife的歌曲为例):打开百度,输入"W ...
- 手把手教你一项Python爬虫接单(技术+渠道)
假期,闲来无事回顾过去的一年,收益最大的还得是Python爬虫接私单,每每和大家分享都甘之如饴,单看一两个单子可能没什么感觉,但一单接一单,一个月的收获非常可观! 这是近期做的爬虫单子,大家可以先感受 ...
- python爬虫百度百科-如何入门 Python 爬虫?
目前网上有关网页爬虫的指导有很多,但是套路却是千篇一律,基本都是围绕以下内容进行展开,CSS/html等网页知识 requests或urllib BeautifulSoup或正则表达式 Seleniu ...
- python爬虫百度云资源分享吧_python爬虫入门 实战(七)---爬取并闪存微信群里的百度云资源...
(声明:本篇文章以交流技术为目的,希望大家支持正版,支持院线~) 需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被 ...
最新文章
- Linux 高可用(HA)集群之keepalived+lvs
- Oracle执行计划相关(待补充)
- static_cast, dynamic_cast, const_cast
- Java并发编程(十三)同步容器类
- python中递归函数特点,Python递归函数特点及原理解析
- 【深度学习】高效使用Pytorch的6个技巧:为你的训练Pipeline提供强大动力
- js 点击闭包_学习Javascript闭包(Closure)
- C# Winform 窗体美化(十、自定义窗体)
- 基于javaSwing+文本存储的学生信息管理系统设计实现
- 05-雷海林-mysql备份原理与在TDSQL中的实践
- oracle 10g rac for linux (ASM) 修改modify public IP and vip
- cjson构建_cJSON结构体构建
- 借助WinPE进行Windows系统安装
- Python硬件编程实战------书评
- 后盾网php微博系统,后盾网thinkphp5.0 博客系统实现
- 万字长文:用Python轻轻松松操作Excel、Word、CSV!
- 拼图游戏 java_Java实现拼图游戏
- android6.0 1g运存,全新安卓系统只要1G运存就能流畅运行!低端机 老手机有救了!...
- 买天文望远镜必看——已知望远镜焦距、相机画幅,求视场(附代码,实时更新)
- 【前端部署】vue项目打包并部署到Linux服务器
热门文章
- 【Python】Python网络爬虫-电视剧《平凡的荣耀》数据爬取与分析
- 论文笔记 | code representation(代码表示学习)系列
- 在线安装提示失败显示系统镜像MD5不正确怎么办
- 对于硬盘做了raid的Windows server 2016服务器重置密码
- excel概率密度函数公式_用excel怎么制作概率密度图_EXCEL 正态分布公式�9�3
- flask 数据库迁移migration
- 北京程序员小哥哥的故事
- 中职教计算机专业发展,中等职业教育中计算机专业教育思考
- 软件测试mysql数据库相关操作
- memcached源码分析-----item锁级别与item引用计数