## 规则定义说明：

对于各类小说网站的解析，只需按照这个要求进行定义，解析便会尽量自动进行，总规则如下：

```python
# 在项目下config/config.py文件中可以看到
Rules = namedtuple('Rules', 'content_url chapter_selector content_selector')
# 在自定义字典RULES下面可以看到各个网站的规则，仅限class和id
# demo  'name': Rules('content_url', {chapter_selector}, {content_selector})
```

对于各个`namedtuple`里面的`content_url，chapter_selector，content_selector`，下面通过不同类型的网站一一进行解释：

- http://www.bxwx9.org/b/57/57181/

  打开这个网站，审查元素后你会发现：

  - url输入栏显示内容为`http://www.bxwx9.org/b/57/57181/`
  - 主要内容包含在`.TabCss`内
  - 第一章的href值为`8845907.html`，由此可知该章的链接为`http://www.bxwx9.org/b/57/57181/8845907.html`

  最后写出规则：

  ```python
  RULES={
    'www.bxwx9.org': Rules('0', {'class': 'TabCss'}, {})
  }
  ```

  `key`值起判断该网站是否被解析，注意此时`content_url`为0，这是表示在解析小说目录的时候，每章节对应的url在拼接过程中需要的是当前的url。对于`content_url`，请看下表：

  |   值    |          说明          |
  | :----: | :------------------: |
  |   -1   |     不解析，跳转到原本网页      |
  |   0    |  表示章节网页需要当前页面url拼接   |
  |   1    | 表示章节链接使用本身自带的链接，不用拼接 |
  | netloc |       用域名进行拼接        |

  `chapter_selector`解析章节目录的规则

  `content_selector`解析目录内容的规则

  ​

- http://www.23us.la/html/0/42/

  ```python
  RULES={
    'www.23us.la': Rules('http://www.23us.la', {'class': 'inner'}, {})
  }
  ```

- http://zetianjiba.net

  ```python
  RULES={
    'zetianjiba.net': Rules('1', {'class': 'bg'}, {})
  }
  ```

  ​


`content_selector`值的获取方式同上