图片处理完之后就是文字了,经过多次尝试,题目和限制信息是真的都有的。所以有下面的代码:
1 #title
2 table_title = table.find('h1')
3 table_title.hidden = True
4 #title below limits description
5 table_limit_des = table_title.findNext('span')
6 table_limit_des.hidden = True
2 table_title = table.find('h1') 找到table里面的标签,因为杭电里面title就是这玩意儿
第5行同,理不解释了。
6 table_limit_des.hidden = True 是隐藏标签 神马意思那,直接上图,直观:
之后的东西就像下面的代码一样,所以只解释第一个了,先上代码:
1 try:
2 table_problem_des = table.find(text='Problem Description').findNext('div', {'class':'panel_content'})
3 table_problem_des.hidden = True
4 except Exception as e:
5 table_problem_des = None
为什么要抓异常那,就像我之前说的,oj神马情况都有可能发生,input都可能没有,所以题目描述,input,output之类的必须要抓异常。例如如果找不到problem,那么table.find(text='Problem Description') 返回一个None,而下一个findNext('div', {'class':'panel_content'})就会报异常。简单的方法是建一个表,info里面有这12个信息,如果有一个信息没有的话,就把它赋值为none。
最后的信息加到info【】这个list里面返回出去,images是最后一个元素,注意这个时候info里面problem里的src已经和images的不一样了。beautifulsoup中文文档
ok,第一部分catch就到这里了,BeautifulSoup的详细用法还真需要找文档,不麻烦的,在几天内我争取把store(存储用的sqlalchemy)和django(显示静态文件原来这样用)写出来,努力努力。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-33239-5.html
本来还想看看一些欢乐的评论呢