代码、教程仅限于学习交流,请勿用于任何商业用途!
Python Web Spider 专门用于爬取网站内链,可以导出成csv,json,xml等文件。可以用于给网站生成专用的sitemap。
https://github.com/duerhong/web-spider
config.py 配置文件,可配置redis,日志,导出数据文件路径 utils.py 核心函数库 worker.py 爬取主程序 task.py 任务相关 demo_create_task.py 创建任务demo demo_export.py 导出数据demo env-example env配置文件demo,请复制一份名称env的文件 requirements.txt 依赖安装 data/csv 当执行了导出csv文件后创建 data/sitemap 当执行了导出sitemap文件后创建
python3.8 + redis 任意版本
pip install -r requirements.txt 如果以上安装未能安装所有依赖程序,请手动安装依赖程序。
将当前env-example复制一份,新文件名称为env文件,并且做好以下配置
ROOT_PATH:./ 当前项目根路径 REDIS_HOST=127.0.0.1 redis host REDIS_PORT=6379 redis prot REDIS_PASSWORD= redis password REDIS_DB=0 redis db
如果想改动默认配置,请修改相关配置项
worker.py 为多线程 + 轮询监听运行,可以通过config.py 文件下配置spider_thread_list来调整线程数量
运行:
# windows python worker.py # linux python3 worker.py # linux 后台守护任务方式运行 nohup python3 worker.py &
可参考 demo_create_task.py 来创建一个爬取任务,主要代码
from task import SpiderTask task = SpiderTask() ret = task.createTask( # 着陆页 landing_page="https://www.test.com", # 域名,多个域名可以用逗号隔开。当爬取链接的域名配置这个域名的时候,被认为是内链。 # 该方案解决部分内链写的是不规范的绝对链接。 domain="www.test.com", # 基础链接,用于生成最终爬取链接,比如当爬取的内链为 /test/1 那么最终链接为 https://www.web-tools.cn/test/1 basic_page="https://www.test.com/" )
请参考demo_export.py
请参考demo_export.py
QQ: 1796958708,有问题随时联系