刚开始学习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 天眼查 爬虫相关推荐

  1. python简单爬虫代码-一则python3的简单爬虫代码

    不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码. 代码如下: #test rdp import ur ...

  2. 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 ...

  3. python宝石与石头_学习python (2)

    Python 2.7.x 与 Python 3.x 的不同点 本文翻译自:<Key differences between Python 2.7.x and Python 3.x> 许多 ...

  4. 学python数学要好吗_学习Python数学英语基础重要吗?

    提到Python编程语言,大家就会想编程语言肯定会涉及到的就是代码,很多人看到那满屏的英文字母就头疼,觉得自己不会英语,肯定学不好Python,但是不会英语到底能不能够学习Python呢,下面小编给大 ...

  5. python展开阅读全文_展开阅读全文 js 爬虫操作

    from selenium import webdriver import time import random from bs4 import * browser = webdriver.Chrom ...

  6. python设置图片透明度_学习python第40天

    今天是在尚学堂学习python第40天今天学习了CSS 中常用样式总结,边框的风格,css中的定位,盒模型,css3中的选择器,css3中常用的属性 CSS 中常用样式总结 字体:(font) 字体的 ...

  7. python数据分析要不要爬虫_数据分析师需要对爬虫掌握到什么程度?

    数据分析师是可以学爬虫的,通过爬虫技术,可以快速获取自己想要的数据,辅助自己进行业务分析,丰富自己的数据来源. 爬虫的学习难度并非大家想象的这么高,他从原理上其实就是模拟人们打开链接(发起请求) -& ...

  8. 怎么查交集_胃镜要不要查?

    两周前,胸口突然跟针扎一样,之后吃饭到胸口就疼,疼了两天去诊所看看,医生说是食道反流,让我吃两天奥美拉唑,一天两颗吃了第三颗时,身体几乎无恙了.但是可能不知道什么病因,当晚和朋友吃饭,吃了两斤虾,晕, ...

  9. scrapy微博反爬虫_基于Scrapy的微博爬虫设计

    Data Base Technique • 数据库技术 Electronic Technology & Software Engineering 电子技术与软件工程 • 187 [关键词]Sc ...

  10. python极客学院爬虫_学习极客学院多线程爬虫课程的收获

    昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...

最新文章

  1. 技术16期:如何更好的保证数据质量【大数据篇】
  2. lvs,keepalived做HA
  3. HBase - 数据写入流程解析
  4. MySQL的进阶实战篇
  5. C语言socket()函数解析(创建套接字)af地址族,ip地址类型(Address Family)INET(Inetnet)PF(Protocol Family)
  6. Polycarp Recovers the Permutation 构造(1000)
  7. 2017年计算机基础知识答题宝典,2017年全国职称计算机考试答题技巧分享
  8. 渤海发现大油田,证券会提示风险,微博回应流量造假,刘国梁制定史上最严奖惩体系,这就是今天的大新闻。...
  9. 合格架构师的目标管理
  10. 公司欠薪,一定要书面督促或仲裁后,再离职
  11. JPA环境下使用Hibernate二级缓存
  12. js中文转拼音插件源码
  13. 网易云音乐显示服务器发生错误,网易云音乐加载失败怎么回事 网易云音乐出现加载失败的有效解决方法...
  14. 对华为路由器配置DHCP实现IP地址的自动分配
  15. oracle vm virtualbox增强功能,VirtualBox增强功能包下载
  16. 联想笔记本电脑insert键占用,当鼠标变成小方块时,如何解决
  17. 盘点春节营销刷屏的那些痛点指南!
  18. 当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?
  19. 8. Spring Security 5.1之 OAuth 2.0 Login
  20. Java发送邮件中文乱码问题

热门文章

  1. 教大家一个可以用迅雷全速下载百度网盘文件的方法
  2. python-获取图片的exif信息
  3. python导入包如果找不到
  4. 08-【go】go语言中的*和的使用方法
  5. librosa 音频处理库
  6. 17个支持图片外链的免费相册
  7. VLAN隔离葵花宝典(一)
  8. 【C语言】之实现查找重复元素
  9. 电脑桌面两个计算机图标怎么删除,电脑桌面上有个图标删除不掉|?怎么处理?
  10. 最小二乘法—多项式拟合非线性函数