1. 基本信息

这个项目属于哪个课程 https://edu.cnblogs.com/campus/fzu/2023DataCollectionandFusiontechnology
组名 冲就完事
项目简介 当我们置身于日常生活或旅途中,常会被美景所震撼,但往往难以找到合适的诗句来表达内心的感悟。为了传承中华传统文化、提升人们的诗词修养和表达能力,我们需要一个智能系统能够根据用户拍摄的照片,自动匹配相应的诗句,并为用户提供相关的学习资源。
团队成员学号 102102101田甜、102102102刘燕莹、102102103李盈盈、102102106何雯彧、102102107张锦瑶、102102110饶雯捷、102102147高宝众、102102153彭诗忠
这个项目的目标 本系统旨在实现以下功能:
a. 图片解释:基于用户上传的图片,系统能够自动识别图片内容,并提供与图片相符合的文字解释。
b. 古诗详情:用户可以选择获取与所拍图片相关的一首古诗的详细信息,包括标题、作者、内容、出处等。
c. 同韵古诗:用户可以获取与所拍图片相关的同韵古诗,以便进行进一步学习和欣赏。
d. 相似句子查询:用户可以输入关键词或句子,系统将返回与输入内容相似的古诗句子,以帮助用户寻找相关诗歌作品。
e.获取诗句相关地点地图:当诗句蕴含地址时,用户可以获取到该地点在地图上的位置
其他参考文献 Junnan Li, Dongxu Li, Silvio Savarese, Steven Hoi.BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models:arXiv:2301.12597[https://arxiv.org/abs/2301.12597]
gitee链接: https://gitee.com/PicaPicasso/crawl_project/tree/master/综合设计——多源异构数据采集与融合应用综合实践
]()

2.个人分工

(1)爬取网站数据,并将需要的数据解析出来

 1. 爬取相似句子
import requests
import json
import sys
import string
import re

def scrapyData(id):

    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
    }

    # 接口三
    similarSentence_url = f'https://api.sou-yun.cn/api/SimilarClause?poemId={id}'
    similarSentence_data = requests.get(url=similarSentence_url,headers=headers).json()
    if isinstance(similarSentence_data,dict) :
        return json.dumps([])
    
    data = []  # 创建一个空列表

    for item in similarSentence_data:
        original_clause = item.get('OriginalClause',"")
        similar_clauses = item.get('SimilarClauses',"")
        if similar_clauses:
            data.append({
                "originalSentence": re.sub(r'[,。]+$','',original_clause),
                "similarSentence": re.sub(r'[,。]+$','',similar_clauses[0]['Content']) + " " + similar_clauses[0]['Dynasty'] + "." +
                                   similar_clauses[0]['Author'] + " " + similar_clauses[0]['Title']
            })

    if len(data) > 3:
        data = data[:3]

    # 将数据转换为 JSON 格式
    json_data = json.dumps(data)

    return json_data



if __name__ == '__main__':

    result = scrapyData(sys.argv[1])
    # result = scrapyData("")

    print(result)




 2. 爬取同韵作品
import requests
import re
import json
import sys


def scrapyData(id):

    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
    }

    # 接口四
    SameRhymePoems_url = f'https://api.sou-yun.cn/api/SameRhymePoems?poemId={id}'
    sameRhymePoems_data = requests.get(url=SameRhymePoems_url,headers=headers).text
    s = '.*?"Title":.*?"(.*?)".*?"Author":.*?"(.*?)".*?"Dynasty":.*?"(.*?)"'
    data = re.compile(s,re.S).findall(sameRhymePoems_data)

    for i in range(len(data)):
        data[i] = data[i][2] + "·" + data[i][1] + ":" + data[i][0]

    return json.dumps(data)


if __name__ == '__main__':

    result = scrapyData(sys.argv[1])
    # result = scrapyData("")

    print(result)




本来有想过用selenium来爬取数据,因为查询作品是要用关键词来进行检索的,写了一份代码,但是被毙掉了,因为不是很方便。
在使用selenium进入网页时,会弹出广告,我写的selenium里面关于关闭广告的部分被后面截取地图用上啦嘿嘿。

# 关闭广告
close = driver.find_element(By.XPATH, '//div[@class="popupad-close"]')
close.click()
time.sleep(3)

在同学的帮助下使用java调用python爬虫获取信息

(2)使用springboot编写后端部分接口代码

 1. 接口三代码
   @RequestMapping("/similarSentence")
    public Result querySimilarSentence(){
        String result_json = crawlRuner.Run("scrapySimilarSentence.py",id);
        List<SimilarSentence> s = ParseJson.parse3(result_json);
        log.info("similarSentence: " + id);
        return Result.success(s);
    }
 2. 接口四代码
    @RequestMapping("/rhymingWork")
    public Result queryRhymingWork(){
        String result_json = crawlRuner.Run("scrapyRhymingWork.py",id);
        String [] data = ParseJson.parse2(result_json);
        log.info("rhymingWork: " + id);
        return Result.success(data);

    }

因为是第一次接触springboot,所以对这部分还很陌生,在同学的帮助下勉强完成。
最后真滴很感谢高宝众同学对我的帮助,泪流满面了。

posted on 2023-12-14 23:01  tiantianmimi  阅读(20)  评论(0编辑  收藏  举报