【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月份發生了什麼

無聊的週末,我寫了個證件照換底色神器,一秒就“變色”

 

 

如有問題,可聯繫我

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