python - BeautifulSoup, Requests - 下面的代码有什么区别?
问题描述
只是一些简单的虚拟问题,我刚开始学习 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
吗?还是还有其他区别?
请对这些有所了解,在此先感谢您。
解决方案
它在文档中提到:
在没有 class_ 快捷方式的旧版本 Beautiful Soup 中,您可以使用上面提到的 attrs 技巧。创建一个字典,其“类”的值是您要搜索的字符串(或正则表达式,或其他)。
这对您在问题的第一部分中寻找的内容有很好的解释。
推荐阅读
- ansible - Ansible:为一组主机创建动态增加编号的目录
- android - 贴图应用:发布应用 AsyncTask 后出现 UnsatisfiedLinkError
- excel - SSIS中的Excel连接字符串
- r - Slurm:使用来自多个节点的核心进行 R 并行化
- centos - CentOS 6.x (6.10) 到 CentOS 7.x
- css - 仅使用 CSS 获得 6 位十六进制颜色的阴影?
- python - 异步执行器在运行后不会终止进程
- javascript - 到达断点后,Slick Slider 问题“onclick”不起作用
- mysql - Mysql选择行项目作为列
- ruby-on-rails - 错误操作导致 Ransack Rails 进程出现问题