# 微博sdk **Repository Path**: webshare520/weibosdk ## Basic Information - **Project Name**: 微博sdk - **Description**: 微博api的请求类库 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-09-22 - **Last Updated**: 2024-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微博sdk ## 账号抓取 ![账号抓取流程图](./docs/账号抓取流程图.jpg) **(1) 用户在Web管理系统界面输入微博ID。** 用户打开系统界面,并在提供的输入框中输入待查询的微博ID,随后触发系统执行相应操作。 **(2) 系统使用微博移动端API调用方式,抓取微博账号信息。** 系统将采用微博移动端API,通过HTTP请求向微博服务器发送获取微博账号信息的请求。这个请求将包括微博ID,以便微博服务器正确识别并返回相应的用户信息,包括但不限于用户头像、粉丝数、关注数、简介等。 **(3) 如果微博ID无效或抓取失败,系统将输出错误信息并终止流程。错误信息会提示用户重新输入有效的微博ID或检查网络连接。** 系统会对微博ID的有效性进行检查,如果微博ID无效或在抓取过程中发生错误,系统将生成详细的错误信息,并将其呈现给用户。这些错误信息可能包括微博ID不存在、API调用失败等。用户将被引导重新输入有效微博ID或检查网络连接。 **(4) 如果微博ID有效且抓取成功,系统将继续执行以下步骤。** 当系统成功获取到微博账号信息后,系统将进入下一步骤。 **(5) 系统查询数据库,检查微博账号是否已存在。** 系统将查询系统内部的数据库,以验证当前微博账号是否已存在。 **(6) 如果微博账号已存在,系统将更新账号的用户头像、粉丝数、关注数、简介等信息。** 若数据库中已存在相应微博账号记录,系统将更新这些记录,以确保数据库中的信息与微博服务器中的最新数据保持同步。这包括更新用户头像、粉丝数、关注数、简介等信息。 **(7) 如果微博账号在数据库中不存在,系统将该账号信息进行入库处理。** 如果数据库中未找到对应的微博账号记录,系统将执行入库操作,将获取到的微博账号信息存储到数据库中,以便将来的查询和更新操作。 **(8) 系统输出成功信息,表示流程执行完成。** 系统向用户呈现详细的成功信息,确保用户了解整个流程已成功执行。这可能包括成功获取到微博账号信息、更新数据库记录或将新记录成功入库等。用户可以继续进行其他操作或查看更新后的微博账号信息。 ## 后台定时任务 ![后台任务流程图](./docs/后台任务流程图.jpg) **(1) 后台定时任务:** 系统每隔十分钟执行以下详细流程。 **(2) 遍历微博账号信息:** 系统通过数据库查询,逐一遍历库内所有微博账号信息,确保每个账号都得到及时的更新。 **(3) 信息抓取和特征提取:** 1. 调用微博移动端API抓取微博账号信息:系统通过HTTP请求调用微博移动端API,获取微博账号信息,包括用户头像、粉丝数、关注数、简介等。 2. 失效微博ID或抓取失败处理:如果微博ID已失效或抓取失败,系统将记录错误信息,将该账号从数据库中删除,并继续处理下一个微博账号信息。 3. 更新账号信息:如果微博ID有效且抓取成功,系统将更新账号的用户头像、粉丝数、关注数、简介等信息。 4. 抓取账号下三天内的微博:系统获取账号最近三天内发布的微博内容,以确保数据库中的微博信息保持较新状态。 5. 更新已存在微博信息:如果微博已存在于数据库中,系统将更新微博的点赞数、评论数、转发数等信息,并继续抓取下一篇微博。 6. 处理新微博:如果微博不存在于数据库中,系统将遍历微博附带的图像信息。 7. 图像特征提取:使用ResNet神经网络模型提取1000个维度的向量特征,以及Google FaceNet提取512个维度的向量特征。 8. 向量特征附加到微博:将提取的向量特征附加到微博记录中,以便后续搜索和分析。 **(4) 存储微博信息:** 1. 微博信息组合:将所有微博信息组合起来,包括更新的账号信息和新抓取的微博内容。 2. 数据库事务:开启数据库事务以保证数据的一致性,确保在存储微博信息的过程中不会发生数据不一致的情况。 3. 插入微博表:将微博信息插入微博表,更新或新增相应的记录。 **(5) 定时任务结束。** 通过这一详细的定时任务流程,系统能够自动更新微博账号信息,抓取最新的微博内容,并提取图像的向量特征。这有助于保持数据库中的数据是最新且具有特征向量的,从而提高搜索的准确性和效率。系统通过定时执行这一流程,确保了实时性和一致性的平衡。每一步都经过详细处理,以确保在各种情况下都能够正确地更新和存储微博相关信息。 ## 图像/人脸搜索 ![图像搜索流程图](./docs/图像搜索流程图.jpg) **(1) 用户上传图片及选择搜索方式:** 用户通过系统界面上传图片,并在上传后选择搜索方式,可以选择人脸搜索或图像搜索。人脸搜索将侧重于识别上传图片中的人脸特征,而图像搜索则以整体图像为基础进行搜索。 **(2) 设置相似度和搜索数量:** 在上传图片后,用户可以设置搜索的相似度阈值,用于确定搜索结果的匹配程度。此外,用户还可以设置搜索返回的数量,以限制结果的显示数量。 **(3) 点击搜索按钮开始搜索:** 用户完成上传和设置搜索条件后,通过点击搜索按钮触发系统开始搜索。系统将根据用户上传的图片和所选的搜索方式,在图像库中查找符合条件的结果。 **(4) 提取人脸(或图像)向量特征:** 对于人脸搜索,系统将提取上传图片中的人脸向量特征。对于图像搜索,系统将提取整体图像的向量特征。这些特征是通过深度学习模型生成的,以便进行后续的相似度比较。 **(5) 与库内图片向量特征进行余弦相似度比较:** 提取的人脸或图像向量特征将与图像库中的其他图片向量特征进行余弦相似度比较。这将确定搜索结果的相似程度,从而过滤出符合用户设定相似度阈值的图片。 **(6) 数据、筛选、组合:** 系统将根据相似度阈值筛选结果,并根据用户设定的搜索数量限制结果的数量。可能会进一步对高相似度的结果进行排序或过滤,以确保最终结果是最相关和有意义的。 **(7) 以列表形式呈现:** 最终搜索结果将以列表形式呈现给用户。列表中将包含图片相似度、图片缩略图、与图片相关的账号信息、微博正文、点赞数量、评论数量、转发数量等关键信息,使用户能够全面了解搜索结果。