【发布时间】:2019-08-29 20:33:01
【问题描述】:
我正在尝试从网页中获取一些数据,为此我使用了这个:
import bs4
import requests
r = requests.get("URLOFTHEWEBSITE")
soup = bs4.BeautifulSoup(r.text, 'lxml')
hi =soup.select('tbody')
hi0 = hi[0].getText()
print(hi0)
由此我得到输出:
**10 lines of nothing**
5522
TRENTO
22:56
5
1
**10 lines of nothing**
Ferma a: PERGINE (23.01) - POVO MESIANO (23.11) - VILLAZZANO (23.15) - S.BARTOLAMEO (23.19) - S.CHIARA (23.21) - TRENTO (23.28)
*about 30 lines of nothing*
我只需要从“5522”到“1”的值,如下所示:
a = "5522"
b = "TRENTO"
c = "5"
d = "1"
如何过滤这些值并忽略所有其他文本?
我尝试使用filter() 命令,但没有成功。
我是 python 新手,所以如果这听起来像一个愚蠢的问题,我很抱歉:| .
【问题讨论】:
-
我们需要 HTML 来调查(刚好足以重现问题)。
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example
-
这是链接 (stazionevirtuale.rfi.it/ArriviPartenze/ArrivalsDepartures/…) 它不是原始链接,因为该页面上的值会随时间变化。这是原始链接(stazionevirtuale.rfi.it/ArriviPartenze/ArrivalsDepartures/…),但现在(英国夏令时 22:32)它应该没有返回值
-
@QHarr 感谢您的建议
标签: python python-3.x beautifulsoup python-requests python-3.6