【发布时间】:2020-05-19 22:32:33
【问题描述】:
我正在尝试抓取网页,我需要将整个表格解码为数据帧。为此,我正在使用漂亮的汤。在某些td 标签中,有span 标签没有任何文本。但是这些值显示在该特定跨度标记中的网页上。
下面的html代码对应那个网页,
<td>
<span class="nttu">::after</span>
<span class="ntbb">::after</span>
<span class="ntyc">::after</span>
<span class="nttu">::after</span>
</td>
但是,这个td 标签中显示的值是23.8。我试图刮掉它,但我得到的是空文本。
如何使用漂亮的汤来刮取这个值。
网址:https://en.tutiempo.net/climate/ws-432950.html
我的代码用于抓取下表给出,
http_url = "https://en.tutiempo.net/climate/01-2013/ws-432950.html"
retreived_data = requests.get(http_url).text
soup = BeautifulSoup(retreived_data, "lxml")
climate_table = soup.find("table", attrs={"class": "medias mensuales numspan"})
climate_data = climate_table.find_all("tr")
for data in climate_data[1:-2]:
table_data = data.find_all("td")
row_data = []
for row in table_data:
row_data.append(row.get_text())
climate_df.loc[len(climate_df)] = row_data
【问题讨论】:
-
页面可能是动态的,您需要从呈现的页面中提取 html。除非您分享网址,否则没有人能提供更多帮助
-
@chitown88,我已经添加了该站点的 URL,您可以在其中发现第 5 行本身存在问题。谢谢
-
你最好包含你的代码,否则很难看出问题是什么;)
-
@ThananjayaS,你只是想拉那张桌子吗?
-
@Isma,我已添加代码供您参考,谢谢
标签: python python-3.x web-scraping beautifulsoup