python - BeautifulSoup- find_all- 订单保存

我正在尝试解析一个具有多个同名类的网站。我想采用第一个(如网页上所示)类(class)的元素。但是,find_all 或 find 不保留解析的顺序。下面是我对 find_all 的实现

请帮忙:

import urllib.request
from bs4 import BeautifulSoup


searchQueryFK = "https://www.flipkart.com/search?q="+str("panasonic%2043e200dx")
r = urllib.request.urlopen(searchQueryFK).read()
soup = BeautifulSoup(r,'html.parser')
FKPrice = soup.find_all("div", {'class':"_2SxMvQ"})[0].find_all("div", {'class':"_1vC4OE"})[0]

print(FKPrice.text[1:])

最佳答案

我想说我不是最有资格评论性能的人,因为 bs4 使用了一种我不太熟悉的结构,即 generator

在查看 beautiful soup ( github ) 的源代码后,我发现该函数迭代了一些 generator。因此我的结论是:如果生成器保留它们的顺序,那么 find_all() 也会保留它们的顺序,否则反之亦然。

只需搜索 def find_all(,在源代码中,然后让我知道,什么听起来对你有说服力。

但由于 python 中的 range 函数也返回一个生成器,因此我相信生成器保留了它们的顺序,因此我的主张是 find_all 也保留了顺序。

但是,我不是 100% 确定。

https://stackoverflow.com/questions/49248799/

相关文章:

python - 如何对 Pandas RE .str.extract() 使用 RE OR 操作数

apache-flink - 在不重启作业的情况下在 Apache Flink 中动态添加模式

amazon-web-services - 在 Looker 中可以进行分页吗?

asynchronous - 使用 async/await 进行异步 mocha 测试时遇到问题

android - 在 test.Jar 中启动 startActivity() ,Cordova

jenkins - 如何在多分支管道项目中为每个分支级别的用户提供访问权限?

google-app-engine - 如何在 objectify 中通过嵌套 Refs 进行查询

python - 如何使用 R 按列将 .csv 拆分为多个 .csv?

c# - 可空类型 "int?"(包括问号)的默认值是多少?

google-apps - 迄今为止的 Google 表格查询字符串