【Python】爬取知乎上的问答数据来汇总出有哪些免费的论文查重网站

 

本文目录:哪里获取-如何获取-代码编写-数据处理

本文作者:小赖同学

 

最近突然感觉自己越来越社会人,这不,小我三届的师弟都来请教我有关毕业的事情了。 不知不觉,就又到了一年的毕业季,曾经在校园潇洒的我也快毕业三年了,往事如风。

毕业季最痛苦的莫过于毕业设计和毕业答辩了,其中耗时最长的就是写论文。好不容易憋出来几万字,结果一查重,红了一大片,连学院名都标红说涉嫌抄袭,这个气啊......所以,这个时候如果有多个免费的论文查重网站,心里起码会安慰很多,可以大胆彻底地修改,毕竟前期不用花那么多钱就可以把自己的论文去重到学校的标准,气也顺多了。

 

哪里获取

那么,怎么找免费的论文查重网站呢?学以致用,这时候Python就派上用场啦!可以通过Python爬虫来获取到数据。

那需要的免费论文查重网站数据在哪找?鉴于有玩知乎,知道知乎已经有了很多相关问答干货的积累,所以我就把目标锁定在了知乎上。借助知乎,可以查找到很多论文查重网站的问答,我可以通过这些回答来汇总出免费的论文查重网站(论文查重网站汇总在文末)

 

如何获取

打开知乎,我们可以在搜索栏输入“免费的论文查重网站”进行搜索,会出来如下界面。可以看到,进行关键字搜索后出来了很多问题以及答案。其中就有很多是介绍论文查重网站的数据信息。那么,如何获得所需要的数据呢?思路就是搜索到所有类似的问题,然后再遍历每个问题获得问题回答内容,最后进行汇总即可得到数据。

接着,F12进入开发者工具调试模式,点击Network查看Request URL。通过滑动中间的进度条,我们可以看到右边调试栏出现了数据,进度条越往下拉数据出来越多。数据动态刷新过程中可以发现多次出现batch和search_v3开头的数据,猜测search_v3应该就是我们需要的数据接口。点击search_v3选择Preview,发现这里数据就是页面显示的,猜测正确。

再接着,选择Headers,点多几个search_v3发现URL中只有offset是变化的,这样就可以确定所需要的URL了,即 url = "https://www.zhihu.com/api/v4/search_v3?t=general&q=" + str(keywords) + "&correction=1&offset=" + str(offset) + "&limit=20",通过这个URL可以获得问题ID。

同理,我们选择一个问题点击进去,再通过开发者工具调试模式查看Request URL,也能获取到问题界面所有回答数据的URL,如下所示:

 

代码编写

有了URL,就可以通过requests模块获取到所需要的问题数据以及相对应的问题回答数据。

请求返回的数据是json格式的数据,通过json解析处理后保存到列表中并另存到csv格式文件中用于后续的数据清洗。部分代码如下所示。

def get_the_answer_to_the_question(question_id):
    """
    通过问题ID获取对应问题的所有回答内容
    :param question_id: 问题ID
    :return: 保存了问题内容等信息的列表,可以写入到csv文件中
    """
    is_end = False    #  搜索出来的信息是否到底了
    offset = 0        #  页面显示的信息数量偏移量
​
    answers = [["问题id", "问题", "回答内容"]]
    while not is_end:
        print(offset)
        url = "填入前面内容所说的URL"
​
        data = requests_web_data(url)
        is_end = json.loads(data)["paging"]["is_end"]
        paging_data = json.loads(data)["data"]
​
        if len(paging_data) > 0:
            for item_data in paging_data:
                answer_infos = [question_id, item_data["question"]["title"], 
                                item_data["content"]]
                answers.append(answer_infos)
            offset += 5
return answers

 

数据处理

通过以上操作已经获取到了需要的论文查重网站数据,接下来就需要对csv文件进行数据清洗,从而筛选出符合的论文查重网站。

如上所示,打开保存的csv文件,需要对回答内容部分进行数据处理。爬取下来的回答真是乱七八糟,什么格式的回答都有,数据中夹杂着特别多的HTML标签,这就加大了数据的处理难度。

网上搜索一番,找到了一个号称做最好的Python中文分词组件的jieba模块。因为网站名也算是一个专有名词,所以可以用jieba对中文等字符串进行分组,分组了也可以统计出各个词组出现的次数,测试代码如下:

# 用jieba对回答answer进行分组
separate_list = jieba.cut(str(answer), cut_all=False, HMM=True)
# 将分组后得到的列表数据转换成字符串,以"/ "相连
separate_str = "/ ".join(separate_list)
# 通过"/ "拆分出来每个词组,用于后面的词频统计
words = separate_str.split("/ ")

测试发现处理后得到的数据并不理想,思考了许久也没有什么优秀的代码方法直接挑选出需要的网站数据(PS:欢迎大家给我提供方法建议),最后无奈地选择代码和EXCEL两者结合的方式半自动来筛选出论文查重网站了,然后再根据分词出来的数据进行论文查重网站的提及次数排序,最终统计数据如下:

上面大多数查重网站都有一定字数的免费查重,我们就可以利用这一点一段一段地自查,直到所有网站的免费字数都用完了,你的论文基本也改得差不多了,这个时候就可以去专业一点的网站花点钱复查,比如知网、维普、万方。

最后提醒下,使用免费模式的论文查重网站时,大家一定要多留一个心眼,看看网址是否正常,记住一定要去官网,小心使用免得信息泄漏!还是建议大家应当在上交论文之前,了解清楚本校的相关毕业规定,在本校使用的查重网站进行最后的复查,目前大多数高校在论文上交前也会提供本校查重网站给自己的学生免费查重,所以,自己查重没达到标准也不必过于恐慌,说不定学校提供的查重网站一查就过了!

那就提前祝即将毕业的你顺利毕业,毕业快乐,很快就是社会人啦!

 

推荐阅读

【Python】我用python爬取一月份微博热搜数据来分析人们对新型肺炎的关注程度变化

可以重启2020吗?我用Python分析总结了1月份发生了什么

无聊的周末,我写了个证件照换底色神器,一秒就“变色”

 

 

如有问题,可联系我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章