-
RainNight
2022-08-18
爬虫
1404°
## 什么是puppeteer?
- - - -
行业中puppeteer被称为傀儡师,又被称为提线木偶,它是一个 Node 库,它提供了一个高级 API 来通过 [DevTools 协议](https://chromedevtools.github.io/devtools-protocol/) 控制 Chrome 或 Chromium 。Puppeteer 默认运行 [无头](https://developers.google.com/web/updates/2017/04/headless-
-
RainNight
2022-08-10
爬虫
1394°
# [不超过百行的SQL文件提取器](http://educate.netearn.top/educate/detail/21/7/45)
```
# -*- coding: utf-8 -*-
# !/usr/bin/python3
# desc by: 两行代码实现SQL文件中数据提取,后期可以结合geogle浏览器插件应用
# author by : rainNight
# weChatPublicNumber: 雨夜的博客
import re
import json
"""
第一步:读取
-
RainNight
2021-05-1
爬虫
2148°
# 基于golang分布式爬虫系统的架构体系v1.0
----
## 一、什么是分布式系统
---
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。简单来说就是一群独立计算机集合共同对外提供服务,但是对于系统的用户来说,就像是一台计算机在提供服务一样。分布式意味着可以采用更多的普通计算机(相对于昂贵的大型机)组成分布式集群对外提供服务。计算机越多,CPU、内存、存储资源等也就越多,能够处理的并发访问量也就越大。
从分布式系统的概念中我们知道,
-
RainNight
2021-04-15
爬虫
1840°
# NodeJs和puppeteer结合的爬虫方案
----
>
由于对NodeJs的数据库操作是异步的,不是同步的,所以去重的方案,直接是删除之前添加的数据,在添加新的。
## 代码篇:
```
const puppeteer = require('puppeteer');
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
pa
-
RainNight
2021-04-6
爬虫
2171°
### 简介
---
goquery是用 Go 语言编写的一个类似于 jQuery 的库。它基于 HTML 解析库net/html和 CSS 库cascadia,提供与 jQuery 相近的接口。Go 著名的爬虫框架colly就是基于 goquery 的。
### 快速使用
---
本文代码使用 Go Modules。
创建目录并初始化:
```
$ mkdir goquery && cd goquery
$ go mod init github.com/darjun/go-daily-lib/
-
RainNight
2021-04-5
爬虫
1768°
# 基于golang实现的并发爬虫,爬取图片
----
## 代码篇
---
```
package main
import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
"strconv"
"strings"
"sync"
"time"
)
// 并发爬思路:
// 1.初始化数据管道
// 2.爬虫写出:26个协程向管道中添加图片链接
// 3.任务统计协程:检查26个任务是否都完成,完成则关闭数据管道
// 4.下载协程:从管道里读取链接并下载
var (
-
RainNight
2021-04-5
爬虫
2548°
# 基于golang的爬虫,爬取QQ邮箱号、链接、手机号、身份证号
---
## 爬虫基础方案,基本的接口封装和使用,并为使用并发的处理
----
### 代码篇
----
```
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"regexp"
)
var (
// w代表大小写字母+数字+下划线
reEmail = `\w+@\w+\.\w+`
// s?有或者没有s
// +代表出1次或多次
//\s\S各种字符
// +?
-
RainNight
2021-04-5
爬虫
1732°
# 基于golang的小爬虫,爬取QQ邮箱号和QQ号
----
## 这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作
---
```
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"regexp"
)
//这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作
var (
// \d是数字
reQQEmail = `(\d+)@qq.com`