手を取り合ってPythonクローラー(5、CSDNフォーラムモデルデザイン)を紹介します

1つは、CSDNフォーラムの分析です。

フォーラムトピックリストページ:
ここに写真の説明を挿入
詳細ページ:
ここに写真の説明を挿入
Bloggerの個人情報ページ:
ここに写真の説明を挿入
上記のページに基づいて取得する必要のあるデータを分析し、モデルを設計します。

2.モデル設計とデータテーブル設計

from peewee import *

db = MySQLDatabase("py_spider", host="localhost", port=3307, user="root", password="root")


class BaseModel(Model):
    class Meta:
        database = db


class Topic(BaseModel):
    title = CharField()     # 标题
    content = TextField(default="")   # 内容
    id = IntegerField(primary_key=True)     # id
    author = CharField()    # 作者
    create_time = DateTimeField()   # 创建时间
    answer_nums = IntegerField(default=0)   # 回复数量
    click_nums = IntegerField(default=0)    # 查看数量
    parised_nums = IntegerField(default=0)  # 点赞数量
    jtl = FloatField(default=0.0)   # 结帖率
    score = IntegerField(default=0)     # 赏分
    status = CharField()    # 状态


class Answer(BaseModel):
    topic_id = IntegerField()
    author = CharField()
    content = TextField(default="")
    create_time = DateTimeField()
    parised_nums = IntegerField(default=0)  # 点赞数量


class Author(BaseModel):
    name = CharField()
    id = IntegerField(primary_key=True)
    click_nums = IntegerField(default=0)  # 访问数
    original_nums = IntegerField(default=0)    # 原创数
    forward_nums = IntegerField(default=0)  # 转发数
    rate = IntegerField(default=-1)     # 排名
    answer_nums = IntegerField(default=0)   # 评论数
    parised_nums = IntegerField(default=0)  # 获赞数
    desc = TextField(null=True)     # 个人描述签名
    industry = CharField(null=True)     # 行业
    location = CharField(null=True)     # 所在地区
    follower_nums = IntegerField(default=0)     # 粉丝数
    following_nums = IntegerField(default=0)    # 关注数


if __name__ == "__main__":
    db.create_tables([Topic, Answer, Author])

実行後に生成されたデータテーブル:
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/zy1281539626/article/details/111305478