python天眼查爬虫_学习Python3 天眼查 爬虫
刚开始学习Python,不愿意看基础,记忆不好,那些语法记不住,直接上个项目,这样比较深刻
刚好公司有个情况要查企业的信息,就想做个爬虫吧,有验证码的不愿意搞,那是个老大难问题,就选择了天眼查
过程都略了,直接写个结果吧,总结出来的步骤如下:
一、天眼查最大的障碍在于字体问题,这个网上都有介绍,大概意思就是说,在网页显示出来的某些字符,是天眼查自己的字体文件处理的。
比如汉字 坐 的utf-8的编码是 b'\\u5750' ,但在天眼查的字体文件里,这个编码对应的汉字是 万 。
这样在页面上某些地方肉眼看到的比如 2500万元,但实际通过标准编码得到的是 2500坐元。其实还有数字,也全部是打乱的。
这样爬到的结果就是后面那个了,这不是我想要的。
二、该字体文件,每天都变,没有固定的,这样想通过做个编码对应表的方法也被否决了。
三、只能一步一步来了,先把该字体文件下载下来,然后通过 fontTools 来操作字体文件,我通过转成xml文件,结合fontCreator,看了一下字体文件的结构,大概知道是怎么回事了
from fontTools.ttLib importTTFont
font1= TTFont('D:/Temp/num4.woff')
font1.saveXML('D:/Temp/font4.xml')
四、把字体结构弄清楚之后,把里面所有的编码,结合该字体,生成位图。
importosimportPIL.Image, PIL.ImageFont, PIL.ImageDraw
image=PIL.Image
ImageDraw=PIL.ImageDraw
ImageFont=PIL.ImageFont
text= u"坐"im= image.new("RGB", (300, 50), (255, 255, 255))
dr=ImageDraw.Draw(im)
font= ImageFont.truetype(os.path.join("fonts", "d:/temp/num4.woff"), 14)
dr.text((10, 5), text, font=font, fill="#000000")
im.show()
im.save("d:/temp/t.png")
#因为我只是学习,所以并没有写完整代码,以上代码只是用来结合字体生成图片的示例
五、把字体文件中涉及到的字按顺序生成的图片,通过OCR识别成字,这个我前面的文章就是专门有写ocr的,识别率100%
六、得到的结果应该是这样的
七、最后通过抓取的结果,然后转成对应的编码,即可得到想要的结果了
八、其它,用fonttools直接获取字体相关的数据如下代码
from fontTools.ttLib importTTFont
font1= TTFont('D:/Temp/num3.woff')
cmap=font1['cmap']
cdict=cmap.getBestCmap()
acs=ord('3')print(acs)print(cdict)#print(cdict[31532])#glyf=list(font1['glyf'].keys())#print(glyf)#bfd=glyf.index('_#58')#print(bfd)
python天眼查爬虫_学习Python3 天眼查 爬虫相关推荐
- python简单爬虫代码-一则python3的简单爬虫代码
不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码. 代码如下: #test rdp import ur ...
- python连乘函数_(Python3) 连加 连乘 代码
原博文 2019-01-27 21:25 − a=[1,2,3,4,5,6,7,8,9,10] #连加 b=0 for i in a: b+=i print(b) #连乘 c=1 for i in a ...
- python宝石与石头_学习python (2)
Python 2.7.x 与 Python 3.x 的不同点 本文翻译自:<Key differences between Python 2.7.x and Python 3.x> 许多 ...
- 学python数学要好吗_学习Python数学英语基础重要吗?
提到Python编程语言,大家就会想编程语言肯定会涉及到的就是代码,很多人看到那满屏的英文字母就头疼,觉得自己不会英语,肯定学不好Python,但是不会英语到底能不能够学习Python呢,下面小编给大 ...
- python展开阅读全文_展开阅读全文 js 爬虫操作
from selenium import webdriver import time import random from bs4 import * browser = webdriver.Chrom ...
- python设置图片透明度_学习python第40天
今天是在尚学堂学习python第40天今天学习了CSS 中常用样式总结,边框的风格,css中的定位,盒模型,css3中的选择器,css3中常用的属性 CSS 中常用样式总结 字体:(font) 字体的 ...
- python数据分析要不要爬虫_数据分析师需要对爬虫掌握到什么程度?
数据分析师是可以学爬虫的,通过爬虫技术,可以快速获取自己想要的数据,辅助自己进行业务分析,丰富自己的数据来源. 爬虫的学习难度并非大家想象的这么高,他从原理上其实就是模拟人们打开链接(发起请求) -& ...
- 怎么查交集_胃镜要不要查?
两周前,胸口突然跟针扎一样,之后吃饭到胸口就疼,疼了两天去诊所看看,医生说是食道反流,让我吃两天奥美拉唑,一天两颗吃了第三颗时,身体几乎无恙了.但是可能不知道什么病因,当晚和朋友吃饭,吃了两斤虾,晕, ...
- scrapy微博反爬虫_基于Scrapy的微博爬虫设计
Data Base Technique • 数据库技术 Electronic Technology & Software Engineering 电子技术与软件工程 • 187 [关键词]Sc ...
- python极客学院爬虫_学习极客学院多线程爬虫课程的收获
昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...
最新文章
- 技术16期:如何更好的保证数据质量【大数据篇】
- lvs,keepalived做HA
- HBase - 数据写入流程解析
- MySQL的进阶实战篇
- C语言socket()函数解析(创建套接字)af地址族,ip地址类型(Address Family)INET(Inetnet)PF(Protocol Family)
- Polycarp Recovers the Permutation 构造(1000)
- 2017年计算机基础知识答题宝典,2017年全国职称计算机考试答题技巧分享
- 渤海发现大油田,证券会提示风险,微博回应流量造假,刘国梁制定史上最严奖惩体系,这就是今天的大新闻。...
- 合格架构师的目标管理
- 公司欠薪,一定要书面督促或仲裁后,再离职
- JPA环境下使用Hibernate二级缓存
- js中文转拼音插件源码
- 网易云音乐显示服务器发生错误,网易云音乐加载失败怎么回事 网易云音乐出现加载失败的有效解决方法...
- 对华为路由器配置DHCP实现IP地址的自动分配
- oracle vm virtualbox增强功能,VirtualBox增强功能包下载
- 联想笔记本电脑insert键占用,当鼠标变成小方块时,如何解决
- 盘点春节营销刷屏的那些痛点指南!
- 当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?
- 8. Spring Security 5.1之 OAuth 2.0 Login
- Java发送邮件中文乱码问题