在this链接中,我尝试计算在网页表格上方显示为链接的所有数字。检查链接以获得更好的主意。我有两个非常相似的代码,但只是第一个代码给出了预期的输出。那么,我的第二个代码有什么问题?
import urllib2
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen("http://www.admision.unmsm.edu.pe/admisionsabado/A/011/0.html"))
c=[]
for n in soup.find_all('center'):
for b in n.find_all('a')[1:]:
c.append(b.text)
t = len(c) / 2
print t
结果是41.在网页上有41个数字显示为网页表格上方的链接,因此输出正确。
在错误的代码中,我定义了一个函数,其输入是url的子集。代码如下:
import urllib2
from bs4 import BeautifulSoup
def record(part):
soup = BeautifulSoup(urllib2.urlopen("http://www.admision.unmsm.edu.pe/admisionsabado".format(part)))
c=[]
for n in soup.find_all('center'):
for b in n.find_all('a')[1:]:
c.append(b.text)
t = len(c)/2
print t
如您所见,计算数字的方法是相同的。所以,我运行函数:
record('/A/011/0.html')
不幸的是,输出为0。
答案 0 :(得分:1)
在函数内部,您使用传入的参数格式化URL字符串,但格式字符串中没有占位符{}
来放置值。这就是它。
"http://www.admision.unmsm.edu.pe/admisionsabado{}".format(part)