我正在努力从 this 中抓取某一行网站。
首先,表格元素中没有类,但我想我有一个解决方法。
我的问题是我想打印(或存储在变量中或访问数据)某一行, 假设第一个值为“Bollate”的行:Screenshot of the row in the website
所以我编码:
import requests
import bs4
URL = "http://www.centrometeolombardo.com/content.asp?CatId=332&ContentType=Dati"
response = requests.get(URL)
soup = bs4.BeautifulSoup(response.text, "lxml")
table = soup.find(text="Bollate").find_parent("table")
for a in table:
if a.text == "Bollate":
for val in a.parent-find_next_siblings():
print(val.text)
但我得到:
Traceback (most recent call last):
File "/home/pi/Documents/Python/ngu.py", line 12, in <module>
if a.text == "Bollate":
File "/usr/lib/Python3/dist-packages/bs4/element.py", line 370, in _getattr_
self._class_._name_, attr))
AttributeError: 'NavigableString' object has no attribute 'text'
这表明我错了,因为我得到的不是文本,但我不知道如何解决这个问题。
谢谢大家
最佳答案
您可以使用 pandas
获取 HTML
并解析表格。然后只需选择您需要的值。
方法如下:
import pandas as pd
url = "http://www.centrometeolombardo.com/content.asp?CatId=332&ContentType=Dati"
df = pd.read_html(url, flavor="bs4")[19]
print(df.loc[df[0] == "Bollate"])
输出:
0 1 2 3 4 5
2 Bollate -0.3 12.3 Brina - -
关于python - 网络从表格中抓取某一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67000250/