|
|
|
|
# 分布式爬虫系统
|
|
|
|
|
|
|
|
|
|
## 下载&安装
|
|
|
|
|
|
|
|
|
|
### 爬虫
|
|
|
|
|
|
|
|
|
|
#### 安装selenium
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
pip3 install selenium
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 安装 mysql,pymysql 并配置
|
|
|
|
|
|
|
|
|
|
#### 下载edge浏览器引擎
|
|
|
|
|
|
|
|
|
|
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
|
|
|
|
|
|
|
|
|
|
![img](https://img-blog.csdnimg.cn/20201014171452760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RrMTAyMw==,size_16,color_FFFFFF,t_70)
|
|
|
|
|
|
|
|
|
|
浏览器 --> 设置 --> 关于 Microsoft Edge --> 版本信息。和上面对应(浏览器图标也要对应上,是这个带 绿色 的)
|
|
|
|
|
|
|
|
|
|
![img](https://img-blog.csdnimg.cn/20201014171642418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RrMTAyMw==,size_16,color_FFFFFF,t_70)
|
|
|
|
|
|
|
|
|
|
把下载的浏览器引擎程序放在 dcs/bin 目录下
|
|
|
|
|
|
|
|
|
|
可以用下面的脚本测试
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
from time import sleep
|
|
|
|
|
from selenium import webdriver
|
|
|
|
|
|
|
|
|
|
driverfile_path = r'G:\Users\god\PycharmProjects\dcs\bin\msedgedriver.exe'
|
|
|
|
|
driver = webdriver.Edge(executable_path=driverfile_path)
|
|
|
|
|
|
|
|
|
|
driver.get(r'https://www.baidu.com/')
|
|
|
|
|
|
|
|
|
|
sleep(5)
|
|
|
|
|
driver.close()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
上面的路径需要自己对应改一下
|
|
|
|
|
|
|
|
|
|
## 运行
|
|
|
|
|
|
|
|
|
|
python3 运行 main.py 文件,开启 server、spider、user_process、requester、communicate 五个服务线程,分布式爬虫系统服务端开始运行和监测。
|
|
|
|
|
|
|
|
|
|
node 运行 login.js,即可开启web服务器,可接收浏览器请求,之后与爬虫服务器通信,取得结果后返回浏览器。
|
|
|
|
|
|
|
|
|
|
再运行 client.py 文件,运行客户端,开始请求爬虫任务,服务端即可接收、分配并执行、组合,最终返回结果到客户端。
|
|
|
|
|
|
|
|
|
|
## 运行截图
|
|
|
|
|
|
|
|
|
|
![image-20220421204241089](https://code.educoder.net/repo/p3t2ja9zs/dcs/raw/branch/master/docs/pictures/server_start.png)
|
|
|
|
|
|
|
|
|
|
![image-20220421204341598](https://code.educoder.net/repo/p3t2ja9zs/dcs/raw/branch/master/docs/pictures/server_running.png)
|
|
|
|
|
|
|
|
|
|
![image-20220421204402347](https://code.educoder.net/repo/p3t2ja9zs/dcs/raw/branch/master/docs/pictures/client_result.png)
|
|
|
|
|
|
|
|
|
|
## 项目结构图
|
|
|
|
|
|
|
|
|
|
![image-20220421204402357](https://code.educoder.net/repo/p3t2ja9zs/dcs/raw/branch/master/docs/pictures/CRAWL_SERVER.jpg)
|
|
|
|
|
|
|
|
|
|
## 服务器运行日志
|
|
|
|
|
|
|
|
|
|
> https://code.educoder.net/attachments/entries/get_file?download_url=https://code.educoder.net/api/p3t2ja9zs/dcs/raw?filepath=dcs/dcs.log&ref=master
|
|
|
|
|
|
|
|
|
|
## 更新日志
|
|
|
|
|
|
|
|
|
|
## V1.0
|
|
|
|
|
|
|
|
|
|
基本框架搭建完毕,实现核心的类“P2P”机制
|