BeautifulSoup,请求-以下代码之间有什么区别?

时间:2019-07-10 18:23:01

标签: python beautifulsoup python-requests urllib

只是一些快速的虚拟问题,我才开始学习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吗?还是还有其他区别?

请对此有所说明,谢谢。

1 个答案:

答案 0 :(得分:1)

它在documentation中被提及:

  

在旧版的Beautiful Soup中,没有class_   快捷方式,您可以使用上面提到的attrs技巧。创建一个   字典,其“类”的值为字符串(或常规   表达式或其他内容)。

这很好地说明了您在问题的第一部分中要寻找的内容。