Python 如何使用BeautifulSoup提取html标记之外的数据

Python 如何使用BeautifulSoup提取html标记之外的数据,python,html,beautifulsoup,Python,Html,Beautifulsoup,我是python新手,所以。这是我的问题 我正在尝试从以下网页中提取数据。我一直在观看有关如何使用BeautifulSoup从网页中收集数据的教程,目前为止,我有以下代码: import requests from bs4 import BeautifulSoup url = 'http://www.ndbc.noaa.gov/data/latest_obs/46011.rss' r = requests.get(url) soup = BeautifulSoup(r.content) data

我是python新手,所以。这是我的问题

我正在尝试从以下网页中提取数据。我一直在观看有关如何使用BeautifulSoup从网页中收集数据的教程,目前为止,我有以下代码:

import requests
from bs4 import BeautifulSoup
url = 'http://www.ndbc.noaa.gov/data/latest_obs/46011.rss'
r = requests.get(url)
soup = BeautifulSoup(r.content)
data_types = soup.find_all('strong')
for item in data_types:
    print(item.text) 
这给了我不同的数据类型(风向、风速、阵风等)。然而,我在从这个网页中提取数字数据时遇到了困难。当您查看网页源时,您可以看到数字数据位于“strong”标记之后和“br”标记之前。由于它不是显式地位于两个标记之间,所以我在提取这些数据时遇到了困难

提前感谢您的帮助

import requests
from bs4 import BeautifulSoup
url = 'http://www.ndbc.noaa.gov/data/latest_obs/46011.rss'
r = requests.get(url)
soup = BeautifulSoup(r.content)
data_types = soup.find_all("description")[1].text.split('\n')
for item in data_types:
    print(item)

Out[1]:
September 28, 2014 12:50 am PDT
Location: 35N 120.992W
Wind Direction: NW (320°)
Wind Speed: 7.8 knots
Wind Gust: 9.7 knots
Significant Wave Height: 8.5 ft
Dominant Wave Period: 9 sec
Average Period: 6.7 sec
Mean Wave Direction: NW (304°) 
Atmospheric Pressure: 29.90 in (1012.5 mb)
Pressure Tendency: +0.00 in (+0.0 mb)
Air Temperature: 62.1°F (16.7°C)
Water Temperature: 59.9°F (15.5°C)
希望有帮助:-)

如果您还需要进一步的步骤,请告诉我。

如果您只想在每个
标记旁边添加文本(而您确定
之后总是有一些文本),您可以操纵BeautifulSoup的
内容列表。下面的代码为您提供了元组列表中数据项的标签和内容

import requests
from bs4 import BeautifulSoup
url = 'http://www.ndbc.noaa.gov/data/latest_obs/46011.rss'
r = requests.get(url)
soup = BeautifulSoup(r.content)
contents = soup.find_all('description')[1].contents
data=[]
for i,content in enumerate(contents):
    if content.name=="strong":
        data.append((content.string,contents[i+1].string))
print data    
输出:

[(u'Location:', u' 35N 120.992W'), (u'Wind Direction:', u' NW (320\xb0)'), (u'Wind Speed:', u' 7.8 knots'), (u'Wind Gust:', u' 9.7 knots'), (u'Significant Wave Height:', u' 8.5 ft'), (u'Dominant Wave Period:', u' 9 sec'), (u'Average Period:', u' 6.7 sec'), (u'Mean Wave Direction:', u' NW (304\xb0) '), (u'Atmospheric Pressure:', u' 29.90 in (1012.5 mb)'), (u'Pressure Tendency:', u' +0.00 in (+0.0 mb)'), (u'Air Temperature:', u' 62.1\xb0F (16.7\xb0C)'), (u'Water Temperature:', u' 59.9\xb0F (15.5\xb0C)')]
你有没有看过例如?