开始不务正业2333
这个挺简单的 , bs4+requests 就好了
然鹅我好像是c++打多了,python的各种语法都不会了,那个format更是一脸懵逼
我在打的时候遇到了2个问题
1,我找tbody的时候,使用了
pro1=demo.find_all(name='tbody').children
因为find_all是返回所有找到元素的列表,自然就没有children
2.我竟然企图这么写
for a in pro1:
if( isinstance(a,bs4.element.Tag) ):
a.find_all('td')
List.append([a[1].string,a[3].string])
可见我python真的很生疏2333
import requests
from bs4 import BeautifulSoup
import bs4
def get_html(url):
try:
html = requests.get(url, headers=h)
html.raise_for_status()
html.encoding=html.apparent_encoding
return html.text
except:
return "wrong"
def get_rank(List,html):
demo=BeautifulSoup(html,"html.parser")
pro1=demo.find(name='tbody').children
for a in pro1:
if( isinstance(a,bs4.element.Tag) ):
sto=a.find_all('td')
List.append([sto[1].string,sto[3].string])
output(List)
def output(List):
with open("res.txt",'a') as f:
cnt=1
for aim in List:
f.write("{:^20}{:^20}{:^20}\n".format(cnt,aim[0],aim[1]))
cnt+=1
f.close()
url="http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html"
h={'user-agent':"Mozilla/5.0"}
html=get_html(url)
List=[]
get_rank(List,html)