首页 > 其他分享 >自学爬虫第三天,番茄小说(文字加密)

自学爬虫第三天,番茄小说(文字加密)

时间:2024-08-17 13:23:17浏览次数:12  
标签:加密 url text list 爬虫 内容 unicode 番茄

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

                        文章目录

前言

一、什么是文字加密?

二、步骤

1.引入库

2.构建请求头

3.构建url列表以及章节目录列表

​编辑

3.先对第一章进行分析,看看内容是否正确

 4.构建完整的爬虫

总结


前言

        学习爬虫的时候,会遇到各种各样的加密,对于番茄来说,它的加密主要体现在文字上,也是平常所说的文字加密。

一、什么是文字加密?

        文字加密是网站的一种常用的反爬手段,会让提取的内容不能正确的显示出来。

二、步骤

1.引入库

import requests
import parsel

2.构建请求头

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0',
}

url = 'https://fanqienovel.com/page/7081535608648109069'

response = requests.get(url=url, headers=headers)

         在调试者界面里的network下找到静态资源并构建一个简单的请求头。这个是最简单的请求头,如果希望更安全不被检测到,可以使其更详细一点,具体构造请看前两篇请求头构造方法。

3.构建url列表以及章节目录列表

# 把text转化为可解析内容
re = parsel.Selector(response.text)
# 用CSS节点选择器找到章节名称的位置,getall()获取该节点下所有文本内容
title_list = re.css('.chapter-item .chapter-item-title::text').getall()
# 用CSS节点选择器找到子章节url的位置,getall()获取该节点下所有文本内容
url_list = re.css('.chapter-item .chapter-item-title::attr(href)').getall()
# 看看效果
for title, url in zip(title_list, url_list):
    print(title, url)

4.先对第一章进行分析,看看内容是否正确

url = 'https://fanqienovel.com/reader/7402826212915039294'
# 构建请求头
response = requests.get(url=url, headers=headers)
# 转化为解析内容
selector = parsel.Seletor(response.text)
# 获取文章内容
text = selector.css('.muye-reader-content.noselect div div p::text').getall()
# 打印章节内容
print(text)

        发现内容有乱码,我们可以通过一个字一个字输出unicode码去看一下,(也可以把列表里面内容各个元素放到一起,具体用join方法):

# 输出每个word的unicode
for line in text:
    for wd in line:
        print('word:', wd, 'unicode:', ord(wd))

  

        我们可以看到,显示不出来的文字的unicode码明显和正常显示的文字不在一个范围里,这时候我们就需要看url里面的字体文件了。

        找到woff2结尾的文件,复制url到网页搜索框中,回车下载下来。然后把下载下来的文件导入到FontCreator中,就会看到unicode码以及对应的汉字了,然后把映射关系导成一个字典,最后循环替换。

# 定义一个空字符串
novel_list = ''
# 在text列表里面循环每一句
for line in text:
    # 在每一句里面循环每一个文字
    for wd in line:
        try:
            # 如果能找到相对应的unicode码,说明这个文字是显示不正常的
            word = dit_data[str(ord(wd))]
            novel_list += word
        except:
            # 如果找不到,那就是正常显示的汉字,按照原来的汉字就可
            word = wd
            novel_list += word
    # 每一行加个换行
    novel_list += '\n'
# 看看效果
print(novel_list)

        这里显示都变正常了。

 5.构建完整的爬虫

        所有的url和标题都爬下来了,章节内容也正常了,现在需要做的就是循环去爬,然后保存就可以了。


总结

        以上就是今天要讲的内容,文字加密是的一种最简单反爬机制,只有两套编码,多的三四套也是有的,这样就更麻烦了。在保证能把内容爬下来的前提下,再去分析内容是否有问题,有问题一层一层的解决问题。

标签:加密,url,text,list,爬虫,内容,unicode,番茄
From: https://blog.csdn.net/Myc970223/article/details/141276413

相关文章

  • 爬虫对德州市企业信息采集系统 项目编号:99954(案例分析)
    爬虫对德州市企业信息采集系统摘 要    随着信息技术的快速发展,大数据已经成为现代社会的重要资源。在德州市,为了更好地管理和利用企业信息,德州市政府推出了一套先进的企业信息采集系统。该系统采用了先进的爬虫技术,能够高效地采集、整理和分析各类企业信息,为政府......
  • Java 开发者必备:一文解决 AES 加密中的“非法密钥大小”异常
    彻底告别java.security.InvalidKeyException,轻松应对不同JDK版本引言在Java开发过程中,我们经常会遇到各种各样的安全相关的问题。其中一个常见的问题是当使用Java的加密功能时遇到的“Illegalkeysizeordefaultparameters”错误。本文将详细介绍如何解决这一问......
  • 基于Python爬虫实现招聘数据分析可视化大屏
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业......
  • vault加密模块
    目录vault加密模块ansible-vault简单使用与playbook一起使用vault加密模块Ansible自带的Vault加密功能,通过AES-256加密算法,极为安全,Vault可以将经过加密的密码和敏感数据同Playbook存储在一起ansible-vault简单使用ansible-vault具有简单加解密功能,且对于同一密码同一文......
  • 加密算法
    加密算法概述加密算法是保护信息安全的重要工具,广泛应用于数据传输、存储和身份验证等领域。根据不同的目的和特性,加密算法可以分为几类。一、对称加密算法对称加密算法是指加密和解密使用相同的密钥。其优点是速度快,适合大数据量的加密,但密钥管理是一个挑战。1.DES(数据加密......
  • Word文件加密的三种专业方法
    Word文档承载着大量敏感信息,如公司机密、合同内容及个人重要资料等。为了确保这些信息的安全性,对Word文件进行加密处理成为了必要的手段。本文将详细介绍三种Word文件加密方法,帮助大家根据实际需求选择合适的加密方式。首先我们要知道,word文档中主要分为打开密码、限制编辑、......
  • 回顾加密风险投资15年演变:步履维艰,但总体向上
    1.引言:加密风险投资的历程过去15年,加密领域经历了从默默无闻到引爆全球金融市场的巨大变迁。风投机构(VC)在这一过程中扮演了重要角色,推动了区块链和加密货币行业的快速发展。本文将探讨加密风险投资的动态演变,重点介绍这些年里投资策略的变化,特别是从股权投资向代币投资的转变......
  • C# Rsa加密(私钥加密、公钥解密、密钥格式转换、支持超大长度分段加密)
        此为工具类,这个和java版本的加密对比过了,结果是一样的,代码赋值黏贴直接用,不多比比,直接上代码(需要在nuget上寻找"Portable.BouncyCastle"包安装):  (java端有个和c#端不一样的地方,base64编码有好几套,有时候对不上大概率是base64那边的问题)     usingOrg.Bouncy......
  • SSM-国外鞋服代购平台-97782(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、
    SSM国外鞋服代购平台摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,鞋服代购平台当然也不例外。代购平台是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过......
  • 如何对加密后的数据进行模糊查询(面试题)
    目录前言1.基本知识2.国内做法前言这道题在面试比较常见,但是在算法逻辑层面中,直接对加密数据进行模糊查询是不可行的,因为加密算法会使数据变成不可读的形式需要在加密过程中采取特殊的策略来支持模糊查询以下只是结合网上现有的资料提供一个思路(通过自定义一些......