我需要在函数中调用BS4帮助。 如果我想通过函数传递路径的findAll(或发现),这是行不通的。 请参阅下面的示例。
from bs4 import BeautifulSoup
data = '<h1 class="headline">Willkommen!</h1>'
def check_text(path, value):
soup = BeautifulSoup(''.join(data), "lxml")
x1 = "h1", {"class":"headline"}
x2 = path
x3 = tuple(path)
print type(x1), 'soup.findAll(x1)===', soup.findAll(x1)
print type(x2), 'soup.findAll(x2)===', soup.findAll(x2)
print type(x3), 'soup.findAll(x3)===', soup.findAll(x3)
for i in soup.findAll(x1):
print 'x1, text=', i.getText()
for i in soup.findAll(x2):
print 'x2, text=', i.getText()
for i in soup.findAll(x3):
print 'x3, text=', i.getText()
check_text('"h1", {"class": "headline"}', 'Willkommen!')
输出
<type 'tuple'> soup.findAll(x1)=== [<h1 class="headline">Willkommen! </h1>]
<type 'str'> soup.findAll(x2)=== []
<type 'tuple'> soup.findAll(x3)=== []
x1, text= Willkommen!
没有人有一个解决方案吗? 谢谢