首页
学习
活动
专区
圈层
工具
发布

我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章

=[] # 用户名列表 titleList = [] # 文章标题列表 viewCntList = [] # 访问量列表 为便于管理,引入一个类进行爬虫,专门负责与服务器进行数据交互 class...,", response.text)) return titleList, viewCntList 这里我使用正则表达式直接处理字符串,并返回文章标题列表、访问量列表。...事实上,用正则匹配不需要将返回的字符串加载为Json字典,可能有更快的处理效率(但不如json灵活) 这个爬虫类就设计好了,完整代码如下: class GetInfo: def __init...='') as f: csv_head = csv.writer(f) csv_head.writerow(['title', 'viewCnt']) 注意编码格式为utf...数据分组 我把数据进一步分层为 1、访问量>10W 2、访问量5W~10W 3、访问量1W~5W 4、访问量5K~1W 5、访问量5K以下 先来看看数据分布情况: 我猜如果分段分得再细一点可能趋于正态分布

58620

真是服了,天才用户取用户名为null,害我熬夜查到两点

因为 "null" 是个合法的字符串,不是 null!你的代码根本不会拦截它,数据库里就多了一个幽灵用户,名字就叫 "null"。...日志排查地狱日志里全是 null,你根本分不清是真·空值还是假·字符串,只能疯狂 debug。...别慌,老司机教你几招: (1)严格校验用户名别只检查 null,还要拦截 "null"、"undefined"、空格等毒瘤字符串: private static final Set ILLEGAL_USERNAMES..."[NULL]" : username); 终极建议:别让用户为你的代码买单 用户可能只是手滑,或者系统自动填充了个 "null",但最终熬夜 debug 的是你。...所以: 入口拦截:注册、导入、API 调用,全都要校验! 统一规范:用户名只能包含字母、数字,长度限制,避免奇葩值。 防御性编程:永远假设用户会输入最离谱的数据!

30310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

    这里GET可以理解为获取(查询)资源, POST为添加资源, PUT为整体更新资源, PATCH为局部更新资源, DELETE为删除资源....因为服务器(项目)现在不支持xml,所以返回了默认的json格式,但严格来说,这样做不正确,所以需要处理一下。 在Startup里,ConfigureServices方法: ?...下面,为项目添加Xml输出格式的支持: ? 再试试: ? 这时就成功的返回了xml。 创建资源 首先了解一下方法的安全性和幂等性。 安全性是指方法执行后并不会改变资源的表述。...但是由于路由参数不支持集合形式, 只能以字符串形式传递, 所以可以做成这样的路由参数: api/xx/(1,2,3,4,5)....OK 如果POST到单个资源的地址 如果POST到这个地址 http://localhost:5000/api/countries/{id},  那么, 如果该id的资源不存在, 则应该返回404; 如果该

    2.1K10

    Src挖掘之比较有意思的几个漏洞挖掘记录

    ,返回为空 直接注下user的长度 'OR+1+in+length(user)+and+'a'+in+'a 只有相等时会卡死,很明显为7位 直接用instr函数注用户名 'OR+1+in+instr(...user,'u')+and+'a'+in+'a instr函数代表后面那个字符在前面字符串第一次出现的位置 例如: instr('user','u')返回1 instr('user','us')返回1...instr('user','s')返回2 第一位为S 第二位为H,其他同理 任意用户名密码重置 玩的某个游戏,手机号换了,申诉成功给我发了邮件,可以看到id和token 这里直接更换id访问,进行更改密码...,显示错误 简单测了测,id随便改,token为空 直接修改密码成功 这里因为不知道目标账号的id,只能随机修改,因为手机号基本就跟id绑定,于是找到了申诉的功能点,这里输入手机号 可以看到返回了id...token,这里前端看到了webpack的接口信息 在JS存在好多接口和接口配置包的构造并且还有API路径 抓个登录接口的包看下格式拼接就好 有的接口有未授权,有的接口需要权限,但是爆破成功的数据包里面是有返回

    34310

    用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

    DELETE(删除资源) DELETE api/countries/{id},成功204;没找到资源 404。 DELETE api/countries,很少用,也是204或者404....POST (创建资源): POST api/countries, 成功返回 201 和单个数据;如果资源没有创建则返回 404 POST api/countries/{id},肯定不会成功,返回 404...;没找到资源则返回 404 PUT api/countries,集合操作很少见,返回 200,204或404 PATCH(局部更新): PATCH api/countries/{id},200单个数据,...204或者404 PATCH api/countries, 集合操作很少见,返回 200集合,204或404....现在的代码是为API的消费者返回了500状态码,并返回了一些错误信息。这样做我们就把异常信息给丢掉了,但是又不应该把异常信息传递给API消费者,而我们确实需要这个异常信息,所以我们把异常记录到日志。

    2.4K20

    wordpress插件开发踩坑记

    想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。...新站首次用 Postman 去 访问 REST API 接口,如:http://EXAMPLE_URL/wp-json/wp/v2/posts,会发现返回的是 404,需要自己在管理后台将:设置-固定链接...遇到的问题新加了一些 api 路由遇到的报错:1...., "data": { "status": 404 }}这种情况就是路径或请求方式有问题,仔细去核对下2....WP_Error类的第一个参数不能设为0接口校验不通过时,我们会选择直接 return 一个 WP_Error 对象,但是要注意 WP_Error 的第一个状态码如果是字符串数字会被直接转成数字,切记不能设置为数字或字符串

    1.1K10

    InsCodeAI全解:人工智能如何重塑软件开发范式与开发者未来

    __name__ == "__main__": n = 10 print(f"斐波那契数列的第{n}项是: {fibonacci(n)}") InsCodeAI甚至还会贴心地添加了文档字符串和测试代码...new ArrayList(); usernames.add("alice"); usernames.add("brian"); usernames.add...("candace"); greetUsers(usernames); } } 翻译不仅转换了语法,还注意到了f-string到Java字符串格式化的转换,并保持了相同的逻辑和结构...2、提供充足的上下文:在提问或请求时,将相关的代码片段、错误信息、API文档等包含进来,AI能做出更准确的判断。 3、迭代式交互:AI的第一次回答可能不完美。...它将开发者从记忆API、编写样板代码、繁琐调试的泥潭中托举出来,让我们得以站在一个更高的维度上去思考软件的本质、架构的艺术和创新的边界。

    25310

    讲解Flask API TypeError: Object of type Response is not JSON serializable

    错误原因当我们使用Flask构建API时,经常需要将Python对象转换成JSON格式的数据返回给客户端。Flask内置了JSON序列化器,可以轻松地将Python对象转换成JSON格式的字符串。...这个错误通常发生在以下几种情况下:返回了一个Flask Response对象:如果我们返回了一个Flask Response对象,而不是一个可以被JSON序列化的对象,就会触发这个错误。...return resp返回了一个自定义的类的实例:如果我们从API函数中返回了一个自定义的类的实例,而这个类没有实现自己的JSON序列化方法,也会触发该错误。...参数解析:Flask提供了在请求中解析参数的功能,例如从URL中获取参数、解析查询字符串、解析JSON数据等。这使得处理来自客户端的输入数据变得更加方便。...它可以捕获和处理常见的HTTP错误代码(如404 Not Found、500 Internal Server Error等)。

    2.5K10

    Java Stream的使用

    流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现) Java 8中的Stream API可以让你写出这样的代码: 声明性——更简洁,更易读 可复合...这个函数会被应用到每个元素上,并将其映射成一个新的元素 注:map不是我们理解的集合Map,应该理解为映射,将一个值映射为另一个值 如下的例子为:取出集合中用户的名字,返回一个名字集合 /**...以下代码直接使用Stream.of创建了一个字符串流。...然后,你可以将字符串转换为大写,再一个个打印出来: /** * of() 方法创建流 */ public void ofOfStream(){ Stream...由文件生成流 Java中用于处理文件等I/O操作的NIO API(非阻塞 I/O)已更新,以便利用Stream API。java.nio.file.Files中的很多静态方法都会返回一个流。 4.

    43121

    Python处理HTTP请求之requests指北

    它简单的API,直观的调用方式,深得新老程序员的喜爱,可以说是80%的爬虫入门第一站。 今天,咱们就再来认识认识它。...不存在的404页面 ? 上面两个示例分别请求了两个网址,返回了两个不同的status_code。这是HTTP请求的状态码。...表示请求被重定向了; 4xx:表示客户端错误; 5xx:表示服务器错误; 我们遇到得最多的应该是2xx;如果有些强制登录,打开网页会自动跳转到登录页面,这时候就会有3xx;访问服务器上不存在的网页,一般都会404...API接口,通过requests来获取其请求的响应: 获取原始的响应主体 ?...为防止服务器不能及时响应,大部分对外部服务器的请求都应该带着 timeout 参数,用来指定如果超多多久服务器没响应,则终止请求。 ?

    4K30

    ApiPost------你值得拥有!

    场景1: 对于我们后端程序员,常常会写一些接口(APIs),但是在前端尚未调用之前,我们必须先自己测试下这个接口是不是正确返回了预定结果。...场景2: 对于一个程序员,最痛恨的莫过于2件事情: 1、痛恨自己写文档 2、痛恨不写文档的别人 这个时候,你需要ApiPost为您快速生成接口文档。...场景3: 对于一个App开发者或者一个前端,我们当然要看下后端返给我们的接口数据长什么样。当然,ApiPost就是干这件事的。 场景4: 对于一个功能测试人员,ApiPost同样拥有用武之地!...ApiPost特性: 快速生成、一键导出API文档 ApiPost不仅可以快速生成接口文档,还支持导出离线html文档。...去官网: Apipost-基于协作,不止于API文档、调试、Mock​ ———————————————— 版权声明:本文为CSDN博主「谁动了我的bug」的原创文章,遵循CC 4.0 BY-SA版权协议

    59530

    内网渗透-春秋云镜篇(Privilege)

    NetBios: 172.22.14.46 XIAORANG\XR-0923 [*] WebTitle: http://172.22.14.16:8060 code:404...len:555 title:404 Not Found [*] WebTitle: http://172.22.14.46 code:200 len:703 title:IIS...Token泄露) 获取API Token 而后根据题目描述,我们去寻找设置的Gitlab API Token,在网页中可以找到 得到{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm...我们刚刚获取的大量用户名密码还没用,将数据提取出来 with open('credentials.txt', 'r') as file: lines = file.readlines() usernames...此时我们就可以通过三种方式达到滥用特权的目的 1、修改服务二进制文件 2、覆盖系统进程使用的DLL 3、修改注册表设置 这里尝试修改粘滞键为cmd,但是拒绝访问了 这里的话再尝试直接修改cmd名字为sethc

    1.1K10

    flask 应用程序编程接口(API)最后一节

    包括来自Facebook,GitHub,Twitter等“大玩家”的大部分API都是如此。很少有公共API被一致认为是纯REST,因为大多数API都没有包含纯粹主义者认为必须实现的某些细节。...page和per_page查询字符串参数是明确的通知,因为它们控制所有API路由的分页。...我为它创建了一种方法来处理这些令牌。get_token()方法为用户返回一个令牌。以base64编码的24位随机字符串来生成这个令牌,将所有字符都置于串联范围内。...这个请求的响应没有正文,所以我可以返回一个空字符串。状态代码为204,该代码用于成功请求却没有响应主体的响应。...服务器返回了404错误,但是这个错误被格式化为标准的404 HTML错误页面。

    6.2K10
    领券