# scraping **Repository Path**: slcnx/scraping ## Basic Information - **Project Name**: scraping - **Description**: 镜像优秀的博客,.... - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: http://blog.mykernel.cn - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-11-29 - **Last Updated**: 2023-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前言 对博客深入学习,目前支持 blog.51cto.com cnblogs.com blog.csdn.net 使用方法: 1. 拿到作者的首页,例如: https://blog.csdn.net/u013938578 2. 复制config-example.ini为config.ini, 将首页配置在config.ini的scrapy_url后 3. 安装依赖 pip install -r requirements.txt 4. 运行python app.py 5. 在下载资源目录中,即会出现 u013938578 目录。 # 详细配置 ```ini [DEFAULT] # 日志格式 formatter_string = %(asctime)s - %(threadName)s : {%(name)s:%(lineno)d} : %(levelname)s : %(message)s # 全局debug debug = False # config debug config_debug = False # 仅有大纲,不下载文件 only_outline = True [top] # 将网站镜像的位置, 建议放在 下载资源 中,这样git会忽略 downloaddir=下载资源 # 爬取线程数 works = 12 # 爬取的url scrapy_url = https://blog.51cto.com/yuweibing/ # public site domain, 一定要/结尾 public_domain = http://localhost:5500/ ``` # 处理地址为自己的公开地址 更新config.ini文件中的public_domain,运行以下程序会替换所有下载资源中的页面引用链接为public_domain的值 ```bash python process_location.py ``` # 二次开发 主要是common中的http.py,用来完成一个流程 - 获取页面数据 - 处理函数 - 获取下一个页面的数据 我们只关心如何处理,就调用这个函数就可以。处理的逻辑自动会使用阻塞IO的线程池模型运行 # 问题记录 ## 不能浏览的网页, ``` overflow: hidden 要转换为 overflow: auto body { padding: 100px; } ``` ## 仅要感兴趣的部分 F12 在控制台运行 ```javascript function getfav(target) { lines = document.getElementsByClassName('line') let result for (line of lines) { if (line.children.item(0).innerText.match(new RegExp(target,"i"))) { result +=line.children.item(0).innerHTML } } console.log(result) } getfav("go") ```