首页 > 编程语言 >python奇葩反爬-你是故意的还是不小心的

python奇葩反爬-你是故意的还是不小心的

时间:2023-03-07 13:45:09浏览次数:42  
标签:双引号 python 反爬 json html 报错 reInfo 奇葩

问题

在挖掘数据时,数据存在于js文件内,所以主要思路就是,把数据提取出来,直接转json格式,通过字典的键索引获取数据。奈何在转json格式的时候一直报错。

报错:Expecting value: line 1 column 2012 (char 1)
我总不能一个一个字符地数吧!!

问题分析

通过json在线解析定位到了错误位置,然后发现这有个反爬。这个反爬并不涉及参数加密、混淆等手法。纯属是针对爬虫开发语言规则做出的反爬。
部分页面源码如下:

这里的\u0022指的就是双引号("),转换一下就是"introduction":"{"html":"我司是一家拥有多年羊毛衫生产经验的专业生产厂家"}"

不难发现,这里有一个错误,就是双引号套双引号"{"html":"..."}",我们只需要用replace把双引号替换成单引号就可以了。

# reInfo是获取到的文本
reInfo = reInfo.replace("\"html\":\"", "\'html\':\'"))

麻了,真不知道这位前端程序员是故意的还是不小心的!!!

标签:双引号,python,反爬,json,html,报错,reInfo,奇葩
From: https://www.cnblogs.com/Rev-RoastDuck/p/17187846.html

相关文章

  • CART分类回归树分析与python实现
    引言前面我们分享过一篇决策树算法叫ID3:ID3决策树原理分析及python实现。首先我们来回顾下ID3算法。ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息......
  • centos7安装python3
    1、首先安装依赖包,centos里面是-devel yum-ygroupinstall"Developmenttools"yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develrea......
  • 开心档之Python3 面向对象
    Python3面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以......
  • Python3定时器任务代码
    使用threading写的一个定时器任务demo:importtimeimportsysimportsignalimportdatetimeimportthreading#定时器defschedule_update():t=threading.T......
  • Appium + python 进行iOS设备的UI自动化测试遇到的问题
    以前通过这套框架接入Android时问题还不是很多,很轻松就能成功,但是到了iOS这里就各种报错,需要安装的插件也比Android多了好多。以下是本次iOS端遇到的问题。参考文档Ap......
  • AES---JS加密python解密
    一.AES加密解密1.AES-128-CBCZero:数据长度不足时填充0,如果数据长度刚好合适就不填充PKCS5:填充8字节长度的ASCII码编号为8的字符PKCS7:(1)数据如果长度刚好合适,就填充数据......
  • Python基础【16】如何遍历的同时删除指定的元素?
     ***核心:浅拷贝copy()通过操作副本而去锁定元数去剔除主本的元数,如果遍历删除对象一直是主本的话,遍历删除的同时会出现缺失遍历问题(删除是立马进行的,收集器里面的元素被删......
  • python 调用crypto 实现RSA 加解密
    importbase64fromCrypto.PublicKeyimportRSAfromCrypto.CipherimportPKCS1_v1_5​​​defcipher(msg):"""公钥加密:parammsg:要加密内容......
  • python生成whl
    whl是我们安装python三方库时离线下载的一个文件,用pipinstallxxx.whl即可安装可是有些三方库download时只有tar包文件,没有whl文件比如:pymsgbox  如何生成我们想......
  • python-unittest(部分笔记)
    自带的单元测试框架:创建一个类,必须继承单元测试用例的类——(unittest.TestCase)单元测试的两部分: ①代码级别的功能验证          ②逻辑覆盖单元测试框架......