文章目录

  • 一、需求
  • 二、思路分析
    • (1)获取书名
    • (2)获取月票
    • (3)整理数据
  • 三、代码分享

一、需求

获取“起点中文网”的书名、月票数据

二、思路分析

(1)获取书名

响应得到的是html类型,可以通过xpath提取书名




(2)获取月票

同样通过xpath提取月票,发现无法正常获取

在response中发现,月票是以&#100484的格式呈现的,这是字体加密反爬操作

可以通过正则提取响应得到的文本数据,发现无法正常获取到数据

测试发现,class的属性值是会变化的


获取字体加密数据包,可以根据woff后缀、size大小来判断

因为每一次请求的字体加密数据包都会发生变化,所以需要实时获取对应的url,向url发送请求,并下载字体加密数据包




解析字体加密文件,创建字体对象、转成xml明文格式


获取字体加密文件中的字体加密映射表cmap


将字体加密映射表的英文转换成阿拉伯数字


将密文的特殊字符&#去除(剩余纯数字)、将纯数字密文换成明文




(3)整理数据


三、代码分享

import requests
from lxml import etree
from fontTools.ttLib import TTFont
import re# 1.确认目标url
url = "https://www.qidian.com/rank/yuepiao/"# 2.发送请求,获取响应
headers = {"Cookie": "e1=%7B%22pid%22%3A%22qd_P_rank_19%22%2C%22eid%22%3A%22%22%2C%22l1%22%3A34%7D; e2=%7B%22pid%22%3A%22qd_P_rank_19%22%2C%22eid%22%3A%22%22%7D; e1=%7B%22pid%22%3A%22qd_P_rank_01%22%2C%22eid%22%3A%22qd_C45%22%2C%22l1%22%3A5%7D; e2=%7B%22pid%22%3A%22qd_P_rank_01%22%2C%22eid%22%3A%22qd_C46%22%2C%22l1%22%3A5%7D; newstatisticUUID=1636507075_361751491; _csrfToken=FY37tuXKZgpka9FClqCf2Wjbw8qNVtHeABymjqPk; qdrs=0%7C3%7C0%7C0%7C1; showSectionCommentGuide=1; qdgd=1; lrbc=1027669580%7C697684798%7C1; rcr=1027669580; hiijack=0; gender=male; fu=511383626; _gid=GA1.2.1338733297.1652162834; COOKIE_BOOKLIST_TIPS=1; _ga_D20NXNVDG2=GS1.1.1652268082.3.0.1652268082.0; _ga_VMQL7235X0=GS1.1.1652268082.3.0.1652268083.0; e1=%7B%22pid%22%3A%22qd_p_qidian%22%2C%22eid%22%3A%22qd_A16%22%2C%22l1%22%3A3%7D; e2=%7B%22pid%22%3A%22qd_p_qidian%22%2C%22eid%22%3A%22qd_A16%22%2C%22l1%22%3A3%7D; _yep_uuid=cb6a56e2-7718-b39b-848b-ae3888468f71; _ga_FZMMH98S83=GS1.1.1652352841.16.1.1652352888.0; _ga_PFYW0QLV3P=GS1.1.1652352841.16.1.1652352888.0; _ga=GA1.2.1915267229.1636507067","Referer": "https://www.qidian.com/rank/","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36"
}response = requests.get(url, headers=headers)# 3.提取数据
# print(response.content.decode())# 3.1 获取书名
html_data = etree.HTML(response.content.decode())
book_names = html_data.xpath("//h2/a/text()")
print("书名:", book_names)# 3.2 获取月票
res = response.content.decode()
#  </style><span class="fYmdRxmC">												

字体反爬 -- 起点月票案例相关推荐

  1. pythonttf字体反爬虫_利用Python采集起点中文网小说,并解决字体反爬的问题

    个人比较喜欢看小说,于是乎想利用Python爬取小说网站--起点中文网,在Python编程爬取定位过程中遇到了Python反爬虫,咨询了我旁边的前端大神,说下方法 当前页面接口返回的html源码 当前 ...

  2. 爬get接口_网络字体反爬之起点中文小说

    前几天跟同事聊到最近在看什么小说,想起之前看过一篇文章说的是网络十大水文,就想把起点上的小说信息爬一下,搞点可视化数据看看.这段时间正在看爬虫框架-pyspider,觉得这种网站用框架还是很方便的,所 ...

  3. 网络字体反爬之pyspider爬取起点中文小说

    这段时间正在看爬虫框架-pyspider,觉得这种网站用框架还是很方便的,所以今天就给大家带来这篇---起点中文网小说爬取.可视化我们放到下一集. 加vx:tanzhouyiwan或qq群813622 ...

  4. 敢看系列?Python字体反爬实战案例之实习那僧,继续挖坑

    文章目录 ⛳️ 实习 实战场景 僧 ⛳️ 实习 实战编码 僧 ⛳️ 实习 实战场景 僧 本篇博客继续学习字体反爬,涉及的站点是实习 x,目标站点地址直接百度搜索即可. 可以看到右侧源码中出现了很多&q ...

  5. 爬虫学习笔记(二十)—— 字体反爬

    文章目录 一.什么是字体反爬 二.编码原理 2.1.ASCII编码对照表 2.2.Unicode编号 2.3.UTF-8编码方式 2.4.字符矢量图 三.案例:58同城反爬字体 3.1.代码实现 一. ...

  6. hwt字体转换ttf_五分钟教你弄懂了字体反爬是个啥

    今天的文章内容主要是关于字体反爬. 目前已知的几个字体反爬的网站是猫眼,汽车之家,天眼查,起点中文网等等. 以前也看过这方面的文章,今天跟个老哥在交流的时候,终于实操了一把,弄懂了字体反爬是个啥玩意. ...

  7. k 近邻算法解决字体反爬手段|效果非常好

    字体反爬,是一种利用 CSS 特性和浏览器渲染规则实现的反爬虫手段.其高明之处在于,就算借助(Selenium 套件.Puppeteer 和 Splash)等渲染工具也无法拿到真实的文字内容. 这种反 ...

  8. 爬虫笔记41之反爬系列四:字体反爬、JS反爬

    一.字体反爬 1.什么是字体反爬? 开发者创作了一种字体(字体代号):网页中显示的就是这种字体代号. 字体反爬也叫CSS反爬,就是因为这个字体是隐藏在我们css文件当中的一个.ttf文件. ​2.如何 ...

  9. python爬虫之woff 超详细 woff字体反扒 起点woff爬虫 字体爬虫 起点中文网woff

    前言:这一期,是针对起点中文网的作品详情页爬取,这是对woff反爬的入门,相对美团之类的字体反爬容易一些.短短的几十行代码,逻辑清晰!让你欲罢不能的关注我!有人就要说了,我已经会爬取小说内容,干嘛要爬 ...

最新文章

  1. mybatis使用find_in_set导致cpu占用过高
  2. SaaS模式云数据仓库:持续保护云上数据及服务安全
  3. zookeeper 单机和集群搭建(windows环境+linux环境)
  4. 基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)
  5. 二分搜索:lower_bound 与 upper_bound 函数
  6. 「洛谷P2397」 yyy loves Maths VI (mode) 解题报告
  7. C源文件到ELF可执行文件的生成过程
  8. 服务器装Win10虚拟机流畅,win10自带虚拟机和vmware哪个更流畅_win10自带虚拟机和vm哪个好用-win7之家...
  9. 自动机器学习简述(AutoML)
  10. 如何测试短信接口调用代码
  11. EDI的含义及其重要性
  12. CSS(七)元素过渡、变化、动画
  13. 银联支付更换正式环境后报错存在风险而关闭了订单
  14. Android 活用RecyclerView分割线
  15. app_process 自定义类似am pm命令
  16. 亚马逊html邮件,创建电子邮件模板 - Amazon Pinpoint
  17. 【SpringBoot】SpringBoot+Zookeeper+Dubbo整合
  18. 网络营销工具:网上收集的30个常用SEO工具
  19. 一目了然的 Node.js Windows10 安装篇
  20. Winform 窗体控件最大化自适应

热门文章

  1. 计算机专业的具体能力和素质要求,计算机实验室管理员应具有的素质要求
  2. Armadillo与matlab矩阵运算对照
  3. C/C++编程工具及实用小软件推荐_dvlinker的博客-CSDN博客_编写c++的软件
  4. 鱼叉式网络钓鱼和网络钓鱼_您需要了解的反网络钓鱼标准–第1部分
  5. [NOI2003]智破连环阵
  6. “中国90后系列研究:社交浪潮中的90后”.pdf
  7. html 奇数div,使用奇数偶数类的Javascript DOM操作
  8. css html 对错号,HTML_DIV+CSS编码时易犯的错误,CSS+DIV是网站标准(或称“WEB - phpStudy...
  9. 利用visio 画思维导图
  10. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结