【发布时间】:2020-12-03 10:43:54
【问题描述】:
我有一个屏幕刮板,可以打印这样的价格
输入:
soup = BeautifulSoup(driver.page_source,"lxml")
for item in soup.select('.valueValue-3kA0oJs5'):
[elem.extract() for elem in soup("div")]
print(item.text)
输出:
478.40
482.11
476.45
480.62
480.62
+5.15 (+1.08%)
我只希望它打印第四(或第五)行,在本例中为 480.62
我试过这个:
soup = BeautifulSoup(driver.page_source,"lxml")
for item in soup.select('.valueValue-3kA0oJs5'):
[elem.extract() for elem in soup("div")]
my_str = str(item.text, end=" ")
price_list = my_str.split()
price_list[3]
但这给出了这个错误:
---> 33 my_str = str(item.text, end=" ")
34 price_list = my_str.split()
35 price_list[3]
TypeError: 'end' is an invalid keyword argument for str()
btw: , end=" " 将所有内容彼此相邻,my_str.split() 用空格分隔它们,并且使用 price_list[3] 我试图隔离第四个。
有人知道怎么做吗?
提前致谢
【问题讨论】:
-
我有点困惑,因为您没有保存列表理解
[elem.extract() for elem in soup("div")]的输出。print(item.text)是否独立于那行代码?
标签: python python-3.x selenium beautifulsoup printing