|
完全是小白,想要依据下图的代码作为模板,练练手爬去其他网站的信息 url = “http://yz.chsi.com.cn/zsml/queryAction.do”
我依据的代码(代码一):
代码一:#CrawUnivRankingB.py
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""
def fillUnivList(ulist, html):
soup = BeautifulSoup(html, "html.parser")
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
tds = tr('td')
ulist.append([tds[0].string, tds[1].string, tds[3].string])
def printUnivList(ulist, num):
tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
print(tplt.format("排名","学校名称","总分",chr(12288)))
for i in range(num):
u=ulist
print(tplt.format(u[0],u[1],u[2],chr(12288)))
def main():
uinfo = []
url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
html = getHTMLText(url)
fillUnivList(uinfo, html)
printUnivList(uinfo, 10) # 20 univs
main()
接下来是我自己依据上面代码修改的(代码二):代码二:import requests
from bs4 import BeautifulSoup
import bs4
def GetHtmlTxt(url):
try:
r = requests.get(url , timeout = 30 )
r.raise_for_status()
r.recoding = r.apparent_encoding
return r.text
except:
return ""
def FillList(Slist , html):
soup = BeautifulSoup( html , "html.parser")
for tr in soup.find("tbody").descendants:
if isinstance(tr ,bs4.element.Tag ):
tds = tr("td")
Slist.append([tds[0].string , tds[1].string , tds[2].string , tds[3].string , tds[4].string , tds[5].string ])
def OutPutList(Slist , num):
print("{:^10}\t{:^6}\t{:^10}\t{:3^}\t{:3^}\t{:3^}".format("招生大学","所在地址","学校特性","研究生院","计划","Doctor"))
for i in range (num):
u = Slist
print("{:^10}\t{:^6}\t{:^10}\t{:3^}\t{:3^}\t{:3^}".format(u[0],u[1],u[2],u[3],u[4],u[5]))
def main():
unifo = []
url = "http://yz.chsi.com.cn/zsml/queryAction.do"
html = GetHtmlTxt(url)
FillList(unifo , html)
OutPutList(unifo , 11 )
main()
代码二运行报错,错误内容为:Traceback (most recent call last): File "C:/Users/2233/Desktop/广东省研究生照收大学(医学).py", line 36, in <module> main() File "C:/Users/2233/Desktop/广东省研究生照收大学(医学).py", line 34, in main FillList(unifo , html) File "C:/Users/2233/Desktop/广东省研究生照收大学(医学).py", line 19, in FillList Slist.append([tds[0].string , tds[1].string , tds[2].string , tds[3].string , tds[4].string , tds[5].string ])IndexError: list index out of range
请问要怎么修啊各位老大。
|
图片是在某个同样的帖子上下过来的
|
|