不同的你输入类似的代码 - 使用Python进行Web Scraping

时间:2014-03-10 19:06:58

标签: python web-scraping beautifulsoup

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。

1 个答案:

答案 0 :(得分:1)

在函数内部,您使用传入的参数格式化URL字符串,但格式字符串中没有占位符{}来放置值。这就是它。

"http://www.admision.unmsm.edu.pe/admisionsabado{}".format(part)