【问题标题】:BeautifulSoup choosing a line from outputBeautifulSoup 从输出中选择一行
【发布时间】:2021-04-22 11:52:31
【问题描述】:

我尝试制作一个从网站获取大坝占用率的 python 脚本。代码如下:

baraj_link = "https://www.turkiye.gov.tr/istanbul-su-ve-kanalizasyon-idaresi-baraj-doluluk-oranlari"
response = requests.get(baraj_link)
soup = BeautifulSoup(response.text, "lxml")

values_list = []
values = soup.find_all('dl',{re.compile('compact')})
for val in values:
    text = val.find_next('dt').text
    value = val.text
    values_list.append((text,value))
baraj = values_list[0][1]

输出是这样的:

Tarih
18/01/2021
Genel Doluluk Oranı (%)
29,48

Genel Doluluk Oranı 的意思是入住率。我需要写在下一行的入住率值,例如 29,48。如何从输出中获取此值?

【问题讨论】:

  • 您需要使问题自成一体——例如通过在问题中包含一些示例 HTML。

标签: python web-scraping beautifulsoup


【解决方案1】:

原因问题和预期结果没有提到的那么清楚,我只是指出入住率的输出。

通过split()字符串获取值

前提是该值始终是string 中的最后一个substring

value = val.text.split()[-1]

【讨论】:

    【解决方案2】:

    从你输出baraj'\n' 分割它,比如baraj.split('\n')[-2] 然后使用索引[-2]

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      相关资源
      最近更新 更多