58同城 房产字体 反爬

  1. 获取HTML

    url = "https://sz.58.com/zufang/"UA = {"referer": "https://www.google.com/","user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"
    }html = requests.get(url=url, headers=UA)
    html.encoding="utf-8"ret = html.text
    with open('58-fangchan.txt', "w", encoding="utf-8") as f:f.write(ret)
    
  2. 获取字体文件

    # 1. 获取字体文件,
    with open("58-fangchan.txt", "r", encoding='utf-8') as f:content = f.read()font_face = re.search(r"base64,(.*?)'\)", content).group(1)
    
  3. 转换 xml, 分析关系

    from fontTools.ttLib import TTFontfont = TTFont("./b-58fangchan字体.ttf")
    font.saveXML("b-58fangchan字体.xml")
  4. 字体的映射关系

    通过,我们反复分析,得出数字取出 减1
    
  5. 全部代码

    import base64
    import io
    import re
    from lxml import etreefrom fontTools.ttLib import TTFontimport requests# ret = base64.b64decode(font_face)
    # with open('58fangchan.ttf', 'wb') as f:
    #   f.write(ret)# font = TTFont(ret)
    # font.saveXML('b-58.xml')url = "https://sz.58.com/zufang/"UA = {"referer": "https://www.google.com/","user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"
    }# html = requests.get(url=url, headers=UA)
    # html.encoding="utf-8"
    #
    # ret = html.text
    # with open('58-fangchan.txt', "w", encoding="utf-8") as f:
    #   f.write(ret)# 1. 获取字体文件,
    with open("58-fangchan.txt", "r", encoding='utf-8') as f:content = f.read()font_face = re.search(r"base64,(.*?)'\)", content).group(1)
    # print(font_face)# 2. base64 解码
    ret = base64.b64decode(font_face)font = TTFont(io.BytesIO(ret))bestcmap = font['cmap'].getBestCmap()for k, v in bestcmap.items():# print(k)# print(v)# k 此时 是10 进制 ,转成 16进制k = hex(k)k = k.replace('0x', '&#x') + ";"# 通过,分析得出,取出v, -1 就对应数字v = int(re.search(r'(\d+)', v).group(0)) -1print(k)print(v)if k in content:content = content.replace(k, str(v))
    #
    # print(content)
    # # 3 .获取 标题 ,
    resp = etree.HTML(content)lis = resp.xpath("//ul[@class='listUl']/li")
    for li in lis:title = li.xpath('./div[@class="des"]/h2/a/text()')if title:title = title[0]print(title)
    

58同城 房产字体 反爬相关推荐

  1. 58同城数字字体反爬

    1.什么是字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的ttf文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容 比如5 ...

  2. 58同城招聘字体反爬

    可以发现对应的某些字体是以某种编码的形式存在的 对应的,在网页里面搜索不到ttf文件,但可以通过network发现@font-face这个东西于是找这个东西 发现是经过base64加密的,于是要用正则 ...

  3. 爬取58同城,解决反爬字体加密解析问题

    [导语]我们在爬取数据中,会遇到字体乱码的下,其实是字体加密,本篇文章主要解决字体解密这种反爬方式. 1.在浏览器打开58同城网址进入北京租房 2.点击检查,找到房租价格对应位置,发现源码中价格部分是 ...

  4. python爬虫爬取58网站数据_Python爬虫,爬取58租房数据 字体反爬

    Python爬虫,爬取58租房数据 这俩天项目主管给了个爬虫任务,要爬取58同城上福州区域的租房房源信息.因为58的前端页面做了base64字体加密所以爬取比较费力,前前后后花了俩天才搞完. 项目演示 ...

  5. 十三、学习分布式爬虫之字体反爬

    字体反爬 字体反爬原理 网页开发者自己创造一种字体,因为在字体中每个文字都有其代号,那么以后在网页中不会直接显示这个文字的最终的效果,而是显示他的代号,因此即使获取到了网页中的文本内容,也只是获取到文 ...

  6. 20200113Python爬虫---猫眼字体反爬

    在做过58同城的字体反爬过后,信心稍微增长点,那么索性找点字体文件反爬的网址,猫眼是客户要求的网址,那么便开始搞起来. 目标网址 猫眼经典电影 2020大陆影片_电影_经典片-猫眼电影 很明显和汽车之 ...

  7. python 破解字体反爬 (二)

    上一篇我介绍了破解58同城的字体反爬 https://blog.csdn.net/BigBoy_Coder/article/details/103239672 中间遗漏了几个细节,在这边文章我做一下补 ...

  8. 破解58同城字体反爬

    1. 前言 最近接了一个私活,破解58同城的css反爬.(被鸽了)现在决定把它开源出来,以便大家参考学习. 2. 主题 首先,打开页面,了解到这部分信息是有字体加密的.如下图: 这部分信息包含 性别 ...

  9. Python复健练习:爬取58同城房产月租及户型加密字体

    Request URL: https://maoyan.com/ 任务:获取正确的信息 [考虑网页渲染性能,通常网页开发者会把自定义的文体编码成base64的方式] 考虑网页渲染性能,通常网页开发者会 ...

最新文章

  1. Quartz.Net线程处理用到的两个Attribute
  2. 精通SERV-U配置文件
  3. location.href使用方法总结
  4. 《卓有成效的程序员》----读书笔记一
  5. react打包后图片丢失_如何快速构建React组件库
  6. 动态给a标签赋值_怎样利用Excel制作抖音上的心形动态函数图像?
  7. 在linux下,如何在C语言中使用正则表达式
  8. 电信运营商物联网实践建议
  9. SQL Server中drop、truncate和delete语句的用法
  10. 使用深度学习TensorFlow框架进行图片识别
  11. 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
  12. 一周学会Mootools 1.4中文教程:(4)类型
  13. 【编译工具系列】之GCC文件关联
  14. Android 内存数据库
  15. paip. JAVA快速开发IDE与JSF技术
  16. 变频器调速工作原理实训装置QY-SP12
  17. 关于眼镜的后续。。。。
  18. UE4 4.27像素流公网布置教程
  19. 自动驾驶控制算法——老王Carsim_Simulink环境搭建步骤
  20. JDK1.8中文文档(免费高清可搜索版)

热门文章

  1. 音频处理中的域-Bark与Mel域
  2. [数据库 开发] SQL两字段相减
  3. jdk环境变量配置win7_jdk环境变量配置win764位
  4. 用EXCEL打表格,斜线上下分别打字怎么做?
  5. 如何使用虚拟机来运行linux,并通过ftp来访问linux服务器(多图详细教学)
  6. 从简历被拒到收割今日头条Offer
  7. 18. 面向对象进阶
  8. 一个厉害的人,你也可以!掌握高效人士的14项深度思考能力
  9. 【转】搞笑笑话几则 ^.^ 让你欲罢不能的几则新鲜经典
  10. 我的梦想是当一个计算机英语,my dream(我的梦想)英语作文带翻译