qt 将int型数据显示在文本框_Qt编写Online judge爬虫
一、前提
剛開始接觸C++/Qt是需要一個項目練練手,當時聽說過OJ并且網絡不好,就想著把數據獲取下來隨時使用。
后來代碼寫多了之后聽說Python寫爬蟲更方便,可惜坑已經跳下去了,就一條路走到黑了。
這是我代碼之路的第一個完整實現完整功能的項目,以示紀念。
github地址如下
https://github.com/JackeyLea/BlackWidow.git?github.com二、開發流程
1. 讀取配置文件(數據庫位置、皮膚名稱)
2. 讀取數據文件(網站名稱列表)
3. 顯示界面
4. 開啟題庫
5. 從第1題開始顯示題目數據(題目ID、題目名稱、提交人數、通過人數、題目)
6. 點擊“顯示提示”
7. 在提示文本框顯示提示
8. 點擊“顯示答案”
9. 在答案文本框顯示答案
10. 點擊“下一題”
11. 如果大于max ID就顯示顯示第1題,否則顯示下一題
12. 點擊“上一題”
13. 如果小于1就顯示最大ID的題目,否則顯示上一題
14. 點擊“爬蟲”
15. 顯示爬蟲界面
16. 點擊“網站名”下拉文本框,選擇一個網站名
17. 清空爬蟲界面數據
18. 點擊“start”按扭
19. 加載json文件中其他數據(網址、開始ID、題目數據正則表達式、提交人數正則等、結束標志等)
20. 開始爬蟲
21. 是否正常,是否結束等等,如果結束則跳轉到35,否則繼續
22. 拼接網址和ID,生成完整的當前網址
23. 獲取網址的網頁數據
24. 判斷網頁數據是否正常,如果包含結束保證則清空,如果是200之外的返回碼則清空
25. 獲取網頁數據中的編碼值,并重新編碼網頁文本
26. 如果網頁數據為空則
27. 根據19中的數據進行文本解析
28. 獲取題目數據中最長的一句話,并計算MD5值
29. 查詢數據庫,此MD5值是否存在,如果存在則跳轉到32,否則繼續
30. 將此MD5值插入MD5表
31. 將其他的數據插入data表
32. 在爬蟲界面更新題目名、位置名、ID,同時更新已獲取的數量值
33. ID+1,正常數量+1,等等
34. 跳轉到21
35. 提示結束
36. 跳轉到15
三、界面
四、問題
1、使用題目最長一句話計算MD5進行相似度判斷,發現效果并不好。
2、使用json格式進行配置文件讀寫發現知識水平不夠,只能進行第一層數據讀寫
3、主線程和爬蟲線程交互有點問題
4、poj題目太多,加上反爬蟲的耗時,考慮使用多線程等等
5、練手項目,最近在學Java、Python,熟練之后在用Java、Python重寫。
總結
以上是生活随笔為你收集整理的qt 将int型数据显示在文本框_Qt编写Online judge爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql执行一条语句会加锁吗_一条简单
- 下一篇: 未来如何与计算机和谐相处,未来计算机将进