SexyLady 发表于 2022-3-14 23:24

自己开发爬虫框架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版本,不要克隆最新的,要不然你跑不起来🤦‍

不负韶华 发表于 2022-3-15 10:32

没什么太大的意义,现有的框架相对很完善了,都是开源框架,有想法可以二次开发,提交pr

SexyLady 发表于 2022-3-14 23:26

这款框架我会坚持开发,希望加精顶一顶,我会继续更新

aodamiao45 发表于 2022-3-14 23:43

希望跟着大佬能把爬虫再收拾起来...

蓝风 发表于 2022-3-14 23:45

可以对比下scrapy优劣

ouyang9r 发表于 2022-3-14 23:48

大佬能说下SexyLady的具体用途吗?谢了

kakagblbcy 发表于 2022-3-14 23:59

是想再造一个轮子?

lyj996 发表于 2022-3-15 00:23

等会试试再来回帖

ccwuax 发表于 2022-3-15 00:32

要什么条件才能发贴?我发贴都要审核的,回贴到没关系

cfsxy 发表于 2022-3-15 05:53

大佬能说下SexyLady的具体用途吗

xu6664258 发表于 2022-3-15 06:54

学习了,感谢分享
页: [1] 2 3 4 5
查看完整版本: 自己开发爬虫框架SexyLady