如何传递pass参数从xml request.get python获取值

时间:2013-09-16 20:16:37

标签: python parameters web-scraping

如何使用request.get()

将参数传递给函数

所以这是我的原始代码

def get_xml():
    xml = requests.get("http://charts.com/charts/101.xml").text
    return xml
print get_xml()

上面的代码可以得到我需要的,但是如何用x替换“101”。 我试图用url变量替换我的地址,但我得到了typeError。请建议。

def get_xml(x):

    url = "http://charts.com/charts/" + x + ".xml"
    xml = requests.get(url).text
    return xml

print get_xml(101)

4 个答案:

答案 0 :(得分:1)

def get_xml(x):    
    url = "http://charts.com/charts/%s.xml" % x
    xml = requests.get(url).text
    return xml

print get_xml(101)

答案 1 :(得分:1)

您可以尝试使用格式,如下例所示:

def get_xml(x):

    url = "http://charts.com/charts/{}.xml".format(x)
    xml = requests.get(url).text
    return xml

print get_xml(101)

编辑:有关格式的更全面说明,请参阅以下link

答案 2 :(得分:1)

def get_xml(x):

url = "http://charts.com/charts/" + x + ".xml"
xml = requests.get(url).text
return xml

print get_xml(“101”)

这可能是您修改后的代码应该是什么样子。我认为代码认为你在尝试一起添加文本和数字

答案 3 :(得分:1)

Python是一种强类型语言。这意味着它不知道如何添加整数和字符串:

>>> "5" + 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

在您的情况下,101是一个int。

您可以尝试使用字符串作为参数调用get_xml函数:

print get_xml("101")

或者在尝试连接之前将参数(在函数内部)转换(强制转换)为字符串(第二个选项可能更好,因为那时你的函数可以正常工作xintstr,并且不依赖于调用get_xml函数的程序员的善意

url = "http://charts.com/charts/" + str(x) + ".xml"

或:

url = "http://charts.com/charts/%s.xml" % x

(对于最后一个,请检查this link