只是一些快速的虚拟问题,我才开始学习BeautifulSoup,并发现有不同的方法可以完成相同的工作,并且所有方法都可以正常工作。
我很好奇知道它们之间的区别:
首先:我测试了以下三行具有相同功能的代码,它们成功运行且结果相同。问题是有什么区别?
shipping_price = container.find('li', {'class':'price-ship'}).text.strip()
shipping_price = container.find('li', 'price-ship').text.strip()
shipping_price = container.find('li', class_='price-ship').text.strip()
上面三行代码中是否有类似的代码来自以前的版本,并且很快会失去支持并被弃用?以上代码是否提供额外的功能?或者它们完全相同。
第二:这有点不同,与BeautifulSoup无关:
uClient = urlopen(my_url)
page_html = uClient.read()
uClient.close()
相反:
page_html = requests.get(my_url).text
我看到,如果我用前者代替后者。结果之间没有区别。因此,有什么区别?仅仅是在上面的两个代码中,他们正在使用不同的模块来抢my_url
吗?还是还有其他区别?
请对此有所说明,谢谢。
答案 0 :(得分:1)
它在documentation中被提及:
在旧版的Beautiful Soup中,没有class_ 快捷方式,您可以使用上面提到的attrs技巧。创建一个 字典,其“类”的值为字符串(或常规 表达式或其他内容)。
这很好地说明了您在问题的第一部分中要寻找的内容。