03 2022 档案

摘要:获取代理 IP // 需要安装 axios 模块 - npm install axios --save const axios = require('axios') // id secret 等参数是在猿人云官网提取API内获取的 const queries = { id: 'xxx', secre 阅读全文
posted @ 2022-03-28 23:28 阿布_alone 阅读(1239) 评论(0) 推荐(0) 编辑
摘要:今天给大家带来的是node简单爬虫,对于前端小白也是非常好理解且会非常有成就感的小技能 爬虫的思路可以总结为:请求 url - > html(信息) -> 解析html 这篇文章呢,就带大家爬取豆瓣TOP250电影的信息 工具 爬虫必备工具:cheeriocheerio 简单介绍:cheerio 是 阅读全文
posted @ 2022-03-28 23:25 阿布_alone 阅读(558) 评论(0) 推荐(0) 编辑
摘要:一.获取GET请求内容 由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。 node.js 中 url 模块中的 parse 函数提供了这个功能。 var http = require('http'); var url = 阅读全文
posted @ 2022-03-26 16:38 阿布_alone 阅读(211) 评论(0) 推荐(0) 编辑
摘要:一.Node.js 函数 在 JavaScript中,一个函数可以作为另一个函数的参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。 Node.js 中函数的使用与 JavaScript 类似,举例来说,你可以这样做: //常规函数 function say(name) { 阅读全文
posted @ 2022-03-26 11:29 阿布_alone 阅读(114) 评论(0) 推荐(0) 编辑
摘要:一、 Buffer(缓冲区) 1. JavaScript 语言没有读取或操作二进制数据流的机制。 2. Node.js 中引入了 Buffer 类型使我们可以操作 TCP流 或 文件流。 3. Buffer 类型的对象类似于整数数组,但 Buffer 的大小是固定的、且在 V8 堆外分配物理内存。 阅读全文
posted @ 2022-03-20 21:22 阿布_alone 阅读(622) 评论(0) 推荐(0) 编辑
摘要:一.Node.js简介 - node是一款对ES标准实现的JS引擎 - 通过node可以使js在服务器中运行 - node就是一款使用js编写的web服务器 - node底层是使用c++的编写的 - node的中js引擎使用的chrome的v8引擎 - node的特点: 1.非阻塞、异步的I/O(当 阅读全文
posted @ 2022-03-18 15:01 阿布_alone 阅读(84) 评论(0) 推荐(0) 编辑
摘要:简介 无意中发现 Liuli 这个项目,项目 Github:https://github.com/liuli-io/liuli 看了其文章,发现 Liuli 是 Python 实现的,便打算简单看看其实现细节,老规矩,看项目,先将好奇点写下来: 1.Python 怎么实现宣传文章中那么漂亮的 PC 阅读全文
posted @ 2022-03-15 15:43 阿布_alone 阅读(551) 评论(0) 推荐(0) 编辑
摘要:一、宝塔面板 安装参考:Linux里的“宝塔”,真正的宝塔!详细教程 二、青龙面板 1.拉去镜像 docker pull whyour/qinglong:latest 2.把镜像拉下来后,我们再执行: docker run -dit \ -v $PWD/ql/config:/ql/config \ 阅读全文
posted @ 2022-03-15 15:19 阿布_alone 阅读(160) 评论(0) 推荐(0) 编辑
摘要:1 信号的意义 在linux系统中信号是与进程通信的一种手段。假设没有信号,linux中的进程一旦运行起来将不再受控,这种局面对于进程的管理来说是一种灾难。kill、ctrl+c等操作本质上就是我们向linux发出的信号,进程接收到信号后根据相应的策略做出反馈。 2 信号的来源 A) 通过终端(组合 阅读全文
posted @ 2022-03-10 23:54 阿布_alone 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:代码: import signal import time """ Python捕捉中断,我们编写程序有时候会用到死循环,在这种情况下我们可以通过Ctrl+C来进行终止,普通程序可以,但是 有时候我们在程序中会打开很多资源,比如文件句柄,网络连接等,我们希望捕获中断然后处理一下这些资源对其进行释放 阅读全文
posted @ 2022-03-10 23:47 阿布_alone 阅读(583) 评论(0) 推荐(0) 编辑
摘要:选项 作用: -c cmd 在命令行直接执行python代码。如python -c 'print "hello world"'。 -d 脚本编译后从解释器产生调试信息。同PYTHONDEBUG=1。 -E 忽略环境变量。 -h 显示python命令行选项帮助信息。 -i 脚本执行后马上进入交互命令行 阅读全文
posted @ 2022-03-10 23:23 阿布_alone 阅读(380) 评论(0) 推荐(0) 编辑
摘要:1、问题描述 在Python中使用print打印hello world时,终端不显示 def hello(): print("hello world!") 2、原因 因为标准输入输出stdin/stdout有缓冲区,所以使用print不能立即打印出来 3、解决方法 1)刷新缓冲区,python中是s 阅读全文
posted @ 2022-03-10 22:13 阿布_alone 阅读(2094) 评论(0) 推荐(1) 编辑
摘要:假设我们有一段程序,从 Redis 中读取数据,解析以后提取出里面的 name 字段: import json import redis client = redis.Redis() def read(): while True: data = client.lpop('info') if data 阅读全文
posted @ 2022-03-09 23:58 阿布_alone 阅读(140) 评论(0) 推荐(0) 编辑
摘要:我们经常会遇到监控文件变化的需求。例如日志监控程序监控日志文件,一旦日志文件发生变化,就进行读取。或者是大批量爬虫的规则配置文件监控,爬虫本身持续运行,一旦规则文件发生修改就自动读取新的规则。 常见的做法,如果文件比较小,可以直接读取以后跟上次读取的内容做对比;也可以判断文件的修改时间是否发生变化; 阅读全文
posted @ 2022-03-09 23:54 阿布_alone 阅读(217) 评论(0) 推荐(0) 编辑
摘要:如果大家在 Linux 或者 macOS 下面运行一段可能导致内存泄露的程序,那么你可能会看到下面这样的情况: 而如果你用的系统是 Windows,那么可能电脑直接就卡死了。 但是,调试这种 OOM(Out of Memory)的问题有时候是非常困难的,因为你不知道代码哪个地方会导致内存泄露。但是如 阅读全文
posted @ 2022-03-09 23:48 阿布_alone 阅读(526) 评论(0) 推荐(0) 编辑
摘要:经常使用 Selenium 或者 Puppeteer 的同学都知道,他们启动的 Chrome 浏览器分为有头模式和无头模式。在自己电脑上操作时,如果是有头模式,会弹出一个 Chrome 浏览器窗口,然后你能看到这个浏览器里面在自动操作。而无头模式则不会弹出任何窗口,只有进程。 别去送死了。Selen 阅读全文
posted @ 2022-03-09 23:32 阿布_alone 阅读(1217) 评论(0) 推荐(0) 编辑
摘要:设想有这样一个场景:爬虫把数据一条一条写入到 Redis 中,你的另一个程序从 Redis 中一条条读取出来,进行一些处理后写入 MongoDB。 一开始,你的处理逻辑非常简单,如果爬虫爬取的数据中,包含“垃圾信息”这四个字,那么直接把信息丢弃。 运行了一段时间,新增了一个需求:如果数据的“sour 阅读全文
posted @ 2022-03-09 23:27 阿布_alone 阅读(245) 评论(0) 推荐(0) 编辑
摘要:假设我们实现了一个程序,它从 Redis 读取数据,然后写入 MongoDB。一开始程序是这样的: def read_from_redis(): ... def write_to_mongodb(doc): ... def parse(): for doc in self.read_from_red 阅读全文
posted @ 2022-03-09 23:21 阿布_alone 阅读(157) 评论(0) 推荐(0) 编辑
摘要:假设我们通过爬虫获取了上万条不规范的地址信息: 杭州市滨江区网商路599号东城区和平里街道上海市徐汇区 xx 小区... 现在老板想让你把这些地址统一格式化为标准的省市区地址格式,并写入到 Excel 中。你应该如何操作? 有一个库,叫做 cpca,可以非常方便地解决这个问题。我们来写一段非常简单的 阅读全文
posted @ 2022-03-09 23:17 阿布_alone 阅读(1524) 评论(0) 推荐(0) 编辑
摘要:目前在中文网上能搜索到的绝大部分关于装饰器的教程,都在讲如何装饰一个普通的函数,或者把类方法当做普通函数装饰。但如果要在装饰器里面运行你装饰的这个方法所在的类中的其他方法和属性,应该如何操作? 以捕获一个方法的异常为例来进行说明。我们写一个类Test, 它的结构如下: class Test(obje 阅读全文
posted @ 2022-03-09 23:13 阿布_alone 阅读(822) 评论(0) 推荐(0) 编辑
摘要:我的公众号是使用Bear这个Mac App来写的。它在官网上写到,所有笔记数据通过SQLite来储存,如下图所示。 SQLite是一个基于文件的关系型数据库,它只有一个文件,但是却最多能储存140TB的数据[1]。 SQLite官网给出了一个判断是否适合使用 SQLite 的标准: 如果程序和数据分 阅读全文
posted @ 2022-03-09 23:08 阿布_alone 阅读(76) 评论(0) 推荐(0) 编辑
摘要:今天的问题来自于公众号粉丝交流群。有同学问道:使用 loguru 时,如何把日志中不同的内容写入不同的文件中? 这位同学试图通过下面这种写法,创建三个不同的日志文件,并分别接收不同的内容: from loguru import logger logger_1 = logger logger_2 = 阅读全文
posted @ 2022-03-09 22:51 阿布_alone 阅读(762) 评论(0) 推荐(0) 编辑
摘要:设想这样一个场景,你要给一个项目开发测试程序,程序开始运行的时候,会创建初始环境,测试完成以后,会清理环境。 这段逻辑本身非常简单: setup() test() clean() 但由于测试的代码比较复杂,你总是在调试的时候程序异常,导致每次clean()函数还没有来得及运行,程序就崩溃了。 你可能 阅读全文
posted @ 2022-03-09 22:45 阿布_alone 阅读(213) 评论(0) 推荐(0) 编辑
摘要:假设有这样一个需求,你需要从 Redis 中持续不断读取数据,并把这些数据写入到 MongoDB 中。你可能会这样写代码: import json import redis import pymongo client = redis.Redis() handler = pymongo.MongoCl 阅读全文
posted @ 2022-03-09 22:39 阿布_alone 阅读(164) 评论(0) 推荐(0) 编辑
摘要:大家有时候可能需要在 Linux 上面生成 zip 文件或者对一个 zip 文件进行解压。如果你在网上搜索怎么在 Linux 解压 zip 文件,你一般会看到下面这样的回答: 但如果你手边刚好有一台 Linux 服务器的话,你可以试一试,一般你会得到这样的返回: 这是因为,zip、unzip 这两个 阅读全文
posted @ 2022-03-09 00:32 阿布_alone 阅读(765) 评论(0) 推荐(0) 编辑
摘要:在写爬虫的过程中,我们经常需要解析网站的列表页。例如下面这个例子: <html> <head> <meta charset="utf-8"> <title>测试相对路径</title> </head> <body> <div> <h1>书籍列表</h1> <ul> <li><a href="http 阅读全文
posted @ 2022-03-09 00:29 阿布_alone 阅读(296) 评论(0) 推荐(0) 编辑
摘要:在我们写爬虫的时候,可能会需要在爬虫里面基于当前url生成一个新的url。例如下面这段伪代码: import re current_url = 'https://www.kingname.info/archives/page/2/' current_page = re.search('/(\d+)' 阅读全文
posted @ 2022-03-09 00:22 阿布_alone 阅读(598) 评论(0) 推荐(0) 编辑
摘要:我们知道,URL 由下面几个部分组成: 其中Query部分,中文叫做查询参数。它在 URL 中,是由等号连接的键值对。这些键值对有一些是有效的,例如: https://open.163.com/newview/movie/courseintro?newurl=MDAPTVFE8 这个网址中的newu 阅读全文
posted @ 2022-03-09 00:15 阿布_alone 阅读(186) 评论(0) 推荐(0) 编辑
摘要:以往我们进行一个正则替换都是直接把和模板匹配到的文本直接替换成一个写死的文本,如: import re a = 'asdad123456asdasd' b = re.sub("\d", "*", a) print(b) 但是呢,现在我们有个需求,从匹配的文本中进行一个提取和处理,在替换回来,这个怎么 阅读全文
posted @ 2022-03-08 23:39 阿布_alone 阅读(116) 评论(0) 推荐(0) 编辑
摘要:相信大家都遇到过这样的问题,在node运行成功的一份js在python中调用报错 很多人的第一想法都是找错,但是笔者也不知道这是啥问题,推荐大家搭建接口调用js,除了方便快捷,在生产环境中还能提高效率 01 首先是逆向代码,这里简单使用一个rsa加密作为案例(encrypt.js) const {g 阅读全文
posted @ 2022-03-08 23:11 阿布_alone 阅读(194) 评论(0) 推荐(0) 编辑
摘要:咱们书接上回,昨天文章发出后,@花儿谢了 大佬说有 油猴脚本 Hook的方法,我之前也试过用脚本 Hook 过,但是没Hook住,因为姿势不对,用了他教的方法后,很轻松就找生成的地方了。用油猴,保头发,妥妥的。 脚本如下: // ==UserScript== // @name Hook global 阅读全文
posted @ 2022-03-06 16:41 阿布_alone 阅读(822) 评论(0) 推荐(0) 编辑
摘要:在看蔡老板的文章时发现油猴hook脚本可以像数组一样遍历函数名,虽然有点碰运气但还是可以尝试。 笔记一: 蔡老板的入口文章系列 其中一个需要自己完成的hook脚本。 // ==UserScript== // @name HOOK 遍历 // @namespace http://tampermonke 阅读全文
posted @ 2022-03-06 12:28 阿布_alone 阅读(498) 评论(0) 推荐(0) 编辑
摘要:前言 数据开发过程中,为了确保生产数据库安全,一般将实时数据同步、备份到本地测试数据库完成开发工作,最后部署应用。 本文实际业务场景:需要从客户处的生成数据库(如mysql数据库)备份数据表到本地的一个sqlserver库中,将生产数据库表复制还原过来。为了快速完成数据备份操作,于是我写了个同步迁移 阅读全文
posted @ 2022-03-06 11:27 阿布_alone 阅读(162) 评论(0) 推荐(0) 编辑
摘要:对于每个前端从业者来说,除了 F5 键之外,用的最多的另外一个键就是 F12 了。最近大神(@小鱼二)推荐我一个网站,才知道 Chrome 还有各种骚姿势。这个网站是:umaar.com/dev-tips/,本文分享一些实用且聪明的调试技巧。 转载来源 来源:掘金社区 “ 阅读本文大概需要 5 分钟 阅读全文
posted @ 2022-03-05 18:19 阿布_alone 阅读(72) 评论(0) 推荐(0) 编辑
摘要:参考这份指南,结合自己手上的vue项目进行实践,可以说对原指南进行了plus,因为实践过程中会有很多指南之外的新发现。 主要内容包括如下: 预览几种不同的breakpoint类型 代码行级(Line-of-code)断点 代码里的某一行上打断点 有条件的行级断点 管理行级断点 DOM变化级断点 几种 阅读全文
posted @ 2022-03-05 15:54 阿布_alone 阅读(832) 评论(0) 推荐(0) 编辑
摘要:当您的代码没有按照预期执行的时候,您是否还在用 console.log 来进行调试?如果是,那这篇文章就是为您准备的。 我写这篇文章的目的是让您了解 Chrome 开发工具提供的高效工具,让您可以更好、更快地调试 Javascript 代码。 本文主要讲述以下几点内容: 设置断点以调试特定行的代码 阅读全文
posted @ 2022-03-05 15:36 阿布_alone 阅读(226) 评论(0) 推荐(0) 编辑
摘要:1写在前面的话 咱们直接进入今天的主题 你真的会写爬虫吗?为啥标题是这样,因为我们日常写小爬虫都是一个py文件加上几个请求,但是如果你去写一个正式的项目时,你必须考虑到很多种情况,所以我们需要把这些功能全部模块化,这样也使我们的爬虫更加的健全。 2基础爬虫的架构以及运行流程 首先,给大家来讲讲基础爬 阅读全文
posted @ 2022-03-05 15:24 阿布_alone 阅读(50) 评论(0) 推荐(0) 编辑
摘要:我们知道,网站使用 Cookies 来记录用户的登录状态。如果我们从浏览器中把 Cookies 复制下来,放到爬虫中,在某些情况下,就可以让爬虫直接访问到登录后的页面。 以练习页面http://exercise.kingname.info/exercise_login_success为例。在没有登录 阅读全文
posted @ 2022-03-05 00:15 阿布_alone 阅读(369) 评论(0) 推荐(0) 编辑
摘要:最近有不少同学在粉丝群里面问,如何调试Scrapy 爬虫。有些人不知道如何让 Scrapy 爬虫进入调试模式;还有一些人不知道怎么单步调试。 怎么进入调试模式 我们知道,Scrapy 项目要启动爬虫的时候,需要在终端或者 CMD 中执行一段命令scrapy crawl 爬虫名。但是,PyCharm 阅读全文
posted @ 2022-03-05 00:09 阿布_alone 阅读(464) 评论(0) 推荐(0) 编辑
摘要:如何使用参数给 Scrapy 爬虫增加属性 在Scrapy 项目中,我们有时候需要在启动爬虫的时候,传入一些参数,从而让一份代码执行不同的逻辑。这个时候,有一个非常方便的方法,就是使用-a参数。它的语法为: scrapy crawl 爬虫名 -a 参数1 -a 参数2 -a 参数3 那么,传入的这些 阅读全文
posted @ 2022-03-05 00:01 阿布_alone 阅读(300) 评论(0) 推荐(0) 编辑
摘要:我们知道,HTTP请求的 POST 方式,提交上去的数据有很多种格式。例如JSON/form-data/x-www-form-urlencoded等等。我们在 Postman 的 POST 请求里面,可以看到这些数据格式,如下图所示: 虽然同样都是 POST 方式,但是有些网站只能使用特定的格式才能 阅读全文
posted @ 2022-03-04 23:58 阿布_alone 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:在工作中,我们开发的系统会涉及到大量的日志。同时,我们还有另一套系统会对日志的内容进行监控,从而判断系统是否正常运作。 以 Nginx 的日志为例,这是一条访问日志: 162.158.167.131 - - [11/Aug/2020:06:47:30 +0800] "GET /tags/Tenaci 阅读全文
posted @ 2022-03-04 23:52 阿布_alone 阅读(51) 评论(0) 推荐(0) 编辑
摘要:当我们写一个类的时候,一般会覆写 __init__方法,来初始化一些数据。例如: class People: def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary def 阅读全文
posted @ 2022-03-04 23:48 阿布_alone 阅读(216) 评论(0) 推荐(0) 编辑

TOP
点击右上角即可分享
微信分享提示