【问题标题】:BeautifulSoup, Requests - What is the difference between following code?BeautifulSoup, Requests - 下面的代码有什么区别?
【发布时间】:2019-07-10 18:23:01
【问题描述】:

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

请先说明一下,谢谢。

【问题讨论】:

  • 对于第二部分,有一个很好的答案here

标签: python beautifulsoup python-requests urllib


【解决方案1】:

documentation中提到:

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

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

【讨论】:

  • 感谢 Ankit 这很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2014-07-03
  • 2021-12-26
  • 2013-12-03
  • 2015-05-30
  • 2019-09-11
相关资源
最近更新 更多