自己开发爬虫框架SexyLady
本帖最后由 SexyLady 于 2022-3-14 23:33 编辑# 前言
作者从事python这门行业也有三年多了,现在也依旧从事python开发,基本集中在数据服务这块。我也很感谢能够成为吾爱的一员,我是最新一批注册的也就是3.13号。那么今天终于可以发帖,非常开心,因为很多技术或者学习的资源及工具有很大一部分都来自吾爱。同时我自己也是一名技术热爱狂,我的id我的第一个认真开发的项目名都叫SexyLady,所以我是真的热爱技术犹如痴迷性感女郎一般👙
那么屁话也不多说,直接介绍下的我SexyLady。
# 准备工作
1. 克隆项目到本地后您可以在项目的终端下输入pip命令,来安装项目所需要的模块包。
```shell
pip install -r requirements.txt
```
2. 在准备就绪是,您的项目目录结构应该是:
![](https://s3.bmp.ovh/imgs/2022/03/70533f3635526c3c.png)
此时,您需要运行 tools 目录下 make_template.py 文件,终端命令如下:
```shell
cd .\tools\
python .\make_template.py
============================
output:Create template successfully
```
此时您将会看到生成了 set_spider 和 set_parser 的.py 文件,如果未出现请重新从磁盘加载目录。
3. 接下来您可以查看生成的模板文件文档,开始熟悉。
# 开始
## 创建爬虫
1. 在 set_spider 中,您需要先设置您的抓取目标(url),比如我们可以这样:
```python
class SN:
def __init__(self):
"""
Want to pass a list like this: self.urls = ['links_1', 'links_2']
your tasks are not many. You can also do this: self.urls = 'link'
"""
self.urls = "https://pypi.org/"
```
是不是很简单呢😲?是以简单的方式完成了第一步,我们只需要设置 `self.urls` 即可,爬虫就创建完成了是😋
## 拿到数据
1. 在 set_parser 中,您只需要专注您的采集数据工作即可,选用您喜欢的解析库,我们这里帮您封装了 xpath 和 PyQuery 。比如我们可以这样:
```python
class Parser:
"""
requests_html is encapsulated here. For details, you can move to:
https://github.com/kennethreitz/requests-html;
https://pypi.org/project/requests-html/
@:param methodname: Select the parsing method you need to use
"""
methodname = 'xpath'
def parser_source(self, p):
"""
Show your cleaning data here, like this:
info = self.html('//*[@id="articleContentId"]/text()')
"""
label = p('//*[@id="user-indicator"]/nav/ul/li/a/text()')
print(label)
```
在这里我们设置了 `methodname = "xpath"`,它是为了告诉 AutoCompleteParser 中,您选中了哪一款解析器,随后我们在函数 `parser_source` 使用了解析器 `p` 完成了 label 字段的采集,并且打印它。
2. 你是否已经运行程序了呢?没错,它肯定给你一个警告⚠,因为你传递错了爬虫的任务名给她,她找不到是要加载哪个爬虫文件😅,你需要更改这里:
```python
if __name__ == '__main__':
#You can initialize your log file
make_logfile('is_test')
ML.info('Start running...')
SexyLady.callback('SN')# Class name corresponding to set_spider.py
```
在 `SexyLady.callback('')` 中,你需要把 set_spider.py 中的类名告诉她,她才知道加载这份爬虫配置文件👌。
# 尾声
SexyLady👱♀️ 了还在建设当中,她应该还有更多的特性,还有个更多的拓展,也希望使用者在 SexyLady 中遇到的问题❓、bug🛠,或者好的想法🎈都可以在git项目中反馈或者持续关注吾爱我的贴子,芜湖✈✈
git项目地址:https://gitee.com/lone_time_no_see_CJ/SpiderAPI
注:如需使用请直接右侧下载v0.1版本,不要克隆最新的,要不然你跑不起来🤦 没什么太大的意义,现有的框架相对很完善了,都是开源框架,有想法可以二次开发,提交pr 这款框架我会坚持开发,希望加精顶一顶,我会继续更新 希望跟着大佬能把爬虫再收拾起来... 可以对比下scrapy优劣 大佬能说下SexyLady的具体用途吗?谢了 是想再造一个轮子? 等会试试再来回帖 要什么条件才能发贴?我发贴都要审核的,回贴到没关系 大佬能说下SexyLady的具体用途吗 学习了,感谢分享