爬虫安装指南

安装部署指南

开发过程均使用的Ubuntu,下面说明指南均基于Ubuntu使用。

中间件安装

需要安装 redis,mysql,minio,rabbitmq 自行搜索,服务器安装即可。

redis参考链接:https://cloud.tencent.com/developer/article/1639658

mysql参考链接:https://blog.csdn.net/xz2005/article/details/130145465

minio参考链接:https://www.cnblogs.com/hunttown/p/17358797.html

rabbitmq参考链接:https://www.cnblogs.com/hunttown/p/17352729.html

安装验证:redis和mysql可用本地连接工具可连接使用,minio和rabbitmq均有可视化界面,可在可视化界面登陆打开。

注意:注意服务器的端口有没有打开

服务器43.154.80.35中已有安装好的中间件,可直接使用,账号密码,代码中的setting.py文件中都有,如果要修改成其他地址中间件,可直接在replace.py中修改相应字段,运行统一修改。

注:现在settings.py文件设置的是服务器43.154.80.35的内网ip,服务器账号密码和各中间件账号密码私信发送。

网络环境安装

服务器要求,

外网,ubuntu

安装软件

privoxy,tor,obfs4proxy

graph LR

a[代码]--8118端口-->b[privoxy]--9050端口-->c[tor]--网桥/obfs4proxy-->d[暗网]
代码

解压压缩包,网站目录下的setting文件中配置了代理端口,将请求发送到本级的8118端口

image-20240828231130808

privoxy

1、安装:sudo apt-get install privoxy

2、修改配置文件:

​ 进入配置文件 vim /etc/privoxy/config

​ 修改接收代理:listen-address 127.0.0.1:8118

​ 修改转发数据:最后一行添加 forward-socks5t / 127.0.0.1:9050 . (注意最后的点不能丢)

image-20240828232233501

image-20240828232433118

​ 配置完重启使配置生效

tor

1、安装tor:sudo apt-get install tor

2、安装obfs4proxy: sudo apt-get install obfs4proxy

3、tor配置文件中添加网桥,vi /etc/tor/torrc,进行如图配置

​ 查看tor 9050端口是否打开,若没有打开,去掉注释打开端口

image-20241003092814823

​ 配置obfs4proxy

​ 配置网桥,地址可用 obfs4 51.178.86.168:54874 773A7F4428AE519A892152EDA963477D85EE672A cert=xghcVpPhAAktkvVpYY6LDsE5iVayo4ADztSEwj0YcqGERxr3+v+RqScaOCC1O/uxeZinWA iat-mode=0,建议多申请几个做备用,网桥也会过期不可用

image-20240828232652882

​ 配置完重启使配置生效

验证网络通路

检测privoxy端口使用:netstat -an | grep 8118

检测tor端口使用:netstat -an | grep 9050

检测整个网络通路:curl -x http://127.0.0.1:8118 http://u5lyidiw4lpkonoctpqzxgyk6xop7w7w3oho4dzzsi272rwnjhyx7ayd.onion/

通路截图:

image-20241003091320866

驱动安装

chrome和chromedriver安装

可借鉴:https://blog.csdn.net/weixin_44184990/article/details/123590435

Google-chrome:版本- Google Chrome 127.0.6533.88

Chromedriver:版本- ChromeDriver 127.0.6533.88

安装路径:/usr/bin/

虚拟环境安装

python环境:安装python,可参考https://blog.csdn.net/qq_45536969/article/details/130124934

虚拟环境:

​ 安装虚拟环境:安装可参考https://blog.csdn.net/m0_64880493/article/details/132964831

​ 安装依赖:安装requirements.txt文件中的所有依赖 pip install -r requirements.txt

代码运行

以下均以43.154.148.210服务器为例

1、打开虚拟环境,虚拟环境在 /opt/dwSpiders/dw-env/bin/下,命令:source /opt/dwSpiders/dw-env/bin/activate,各自安装的目录地址不一样,需要修改命中的路径,

2、进入网站目录,以torrez网站为例,命令:cd /opt/dwSpiders/torrez

3、添加修改cookie,43.154.80.35服务器上的redis中有示例,使用tor登陆后可按示例将cookie填写到自己的redis中(注:leakbase网站没有验证码,登陆逻辑已经写好,直接第4步运行即可)

image-20240902223652351

4、启动代码:python3 run_torrez.py &

5、查看日志:如果当前窗口运行代码,则会自动弹出日志,如果不是,则进入网站目录下的logs目录,查看当前日期日志文件。

6、cookie过期:网站的cookie会过期,过期后直接在redis库中替换就行

7、如需要重跑,需要删除redis相应网站下dupefilter和bloom_fliter_img,这是url请求的指纹和图片的请求指纹,去重使用。

8、mq的使用,在每个网站目录下都加了mq的配置,如要使用,在setting文件中打开即可

image-20240902523652351

9、不建议使用start.sh统一启动,可进入各自网站目录下单独启动运行,根据不同的服务器目录,start.sh需要配置不同的虚拟环境目录和代码目录

中间件初始化

mysql

MySQL的初始化比较简单,在安装好的MySQL中安装 dw-spider 库,库中需要新建5张表(goods、original_page、post、site、user),如图。建表语句代码db目录下有。

image-20240902223652352

minio

minio的初始化也比较简单,在其中新建dw-bucket,如图。

image-20240902223652353

redis

redis中需要预置8个网站的cookie:Onniforums、asap、breachforums、darkdock、dread、mgmgrand、nexus、torrez

redis的key为 网站名称:网站名称_cookie,示例:asap:asap_cookie

redis的value为 hash类型的键值对,如图

Onniforums:image-20240902223652354

asap:image-20240902223652355

breachforums:image-20240902223652356

darkdock:image-20240902223652357

dread:image-20240902223652358

mgmgrand:image-20240902223652359

nexus:image-20240902223652360

torrez:image-20240902223652361

下图为代码运行后的redis截图,其中截了torrez网站和单独的bloom_filter_img。

bloom_filter_img:为所有图片请求过滤所用,内存放所有已请求的图片地址,其内存放的图片地址不会二次请求,如果重跑需删除,代码运行后会自行添加。

dupefilter:为站内地址请求过滤所有,内存放所有已请求的地址hash值,其内已存放的地址不会二次请求,如果重跑需要删除,代码运行后会自动添加。

start_urls:为代码运行时,起始请求的地址,重跑时需要删除,运行后会自动添加,起始地址请求后会自动删除。

torrez_cookie:为网站cookie,运行时需要添加,且保证cookie在有效期内。

image-20240928172856612

rabbitmq

需要新建5个队列:goods、page、post、site、user。

可在可视化界面新建,如图。

image-20240902223652361

其初始交换机为scrapy,无需配置,代码运行时会自动配置。

注:每个队列都在每个网站的mqPipeline.py文件中绑定,不建议修改。

中间件配置修改

代码中有replace.py文件,运行次文件可统一修改当前文件夹下的setting.py文件中的中间件配置。replcae.py中的old_str字段为当前中间件配置,new_str字段为需要修改后的中间件配置,代码运行将setting文件中的old_str配置修改成new_str配置。

wget -O - https://min.io/docs/minio/linux/examples/ReplicationAdminPolicy.json |
mc admin policy create minio-main ReplicationAdminPolicy /dev/stdin
mc admin user add minio-main ReplicationAdmin LongRandomSecretKey
mc admin policy attach minio-main ReplicationAdminPolicy –user ReplicationAdmin

mc admin policy attach minio-main ReplicationAdminPolicy –user ReplicationAdmin

mc alias set minio-slave http://43.154.195.176:9000 minioadmin minioadmin

wget -O - https://min.io/docs/minio/linux/examples/ReplicationRemoteUserPolicy.json
mc admin policy create minio-slave ReplicationRemoteUserPolicy /dev/stdin
mc admin user add minio-slave ReplicationRemoteUser LongRandomSecretKey
mc admin policy attach minio-slave ReplicationRemoteUserPolicy –user ReplicationRemoteUser

mc replicate add minio-source/dw-bucket –remote-bucket http://ReplicationRemoteUser:LongRandomSecretKey@43.154.195.176/:9000/dw-bucket –replicate “delete,delete-marker,existing-objects”

mc replicate add minio-source/dw-bucket
–remote-bucket http://ReplicationRemoteUser:LongRandomSecretKey@43.154.195.176/:9000/dw-bucket
–replicate “delete,delete-marker,existing-objects”

mc replicate add minio-source/dw-bucket
–remote-bucket ‘http://ReplicationRemoteUser:LongRandomSecretKey@43.154.195.176/:9000/dw-bucket
–replicate “delete,delete-marker,existing-objects”

1
2
3
4
mc replicate add                                                     \
--remote-bucket https://user:secret@minio.mysite.tld:9001/bucket \
--replicate "delete,delete-marker,existing-objects" \
myminio/mydata

mc replicate add minio-source/sourcebucket –remote-bucket &39; –replicate &34;

mc config host add minio_master http://http://43.154.80.35:9000 minio-username minio-password
mc config host add minio_slave http://43.154.195.176:9000 minio-username minio-password

Remote service connection error (Remote service endpoint offline, target bucket: dw-bucket or remote service credentials: LongRandomSecretKey invalid Get “https://43.154.195.176:9000/dw-bucket/?location=“: http: server gave HTTP response to HTTPS client)

mc config host add minio_master http://http://43.154.80.35:9000 minioadmin minioadmin
mc config host add minio_slave http://43.154.195.176:9000 minioadmin minioadmin

iIwWDr1XrjnpPps194v9

n4pxy5MOtUV3YagdLdEDnuM6owgGkGBBXbF55W6K

DtTT4FJK4FDeyhcBmJeq

dHyP04tChkumOqg0e2EU24hufftIPYWgrmflD699

Igad7aBC1fKgDv54RyK1

fvo7z0hO19v6CAwhcUZShI6TiZp7Ko7HlfIwJvoH