Python爬取SDNUOJ两用户Solved problems查找遗漏的水题
Description
输入用户名,爬取SDNUOJ指定用户Information页面Solved Problems题号,通过对比,输出对方已解决而自己尚未解决的题目的题号
可执行文件下载链接:https://github.com/fireworks99/Tools/raw/master/OJ_compare_sloved.exe
Thanks
感谢LTR师哥( https://blog.csdn.net/ltrbless )耐心指导,拿出自己珍贵的大把的时间悉心为我讲解细节,在我求“鱼”之时授我以“当下之鱼”及“来日之渔”
题目做腻了的时候看了看爬虫入门的东西,偶然想起某天MF(YMF https://solodance.top/ )与旁人闲聊时提到这个(爬取两用户Information比较得出自己遗漏的水题)有趣的东西,想着自己也试试。在此说明原Idea来自于他。
Code
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
Process
审查元素
鼠标指着某段代码会出现相应模块,我们当前指向即为所需部分(Solved Problems)
发现其Tag(标签)为”div”,class_属性为”row”
find_all所有这样的内容,返回一个my_list列表
其中第5个元素,即my_list[4]是我们想要的Solved模块,将其转为字符串文本,创建为一个新的BeautifulSoup对象
对新对象find_all(‘a’),标签a为“链接类”标签
<a href="/status/list?name=2018zhaobaole&pid=1025&type=10">1025</a>
后面的1025属于NavigableString(可操纵字符串)对象,可以通过
.string
直接访问不懂的语法、函数去官方文档(BeautifulSoup4.2.0文档)找
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
更多内容详见code
Attention
使用上述代码时需要保证该Python Project中有beautifulsoup4解释器
pycharm如何安装beautifulsoup4:https://blog.csdn.net/huatian5/article/details/74502687