Python 美丽的汤-如何从对象中提取字符串
我在学漂亮的汤。我已经成功地找到了我需要的html行。 我的下一步是从这些行中提取Id值 查找行的代码如下所示:Python 美丽的汤-如何从对象中提取字符串,python,beautifulsoup,Python,Beautifulsoup,我在学漂亮的汤。我已经成功地找到了我需要的html行。 我的下一步是从这些行中提取Id值 查找行的代码如下所示: object = soup_station.find('img',{'src': re.compile("^Controls")}) 如果我现在打印对象,我将得到以下结果,例如: <img src="Controls/RiverLevels/ChartImage.jpg?Id=471&ChartType=Histogram" id="StationDetail
object = soup_station.find('img',{'src': re.compile("^Controls")})
如果我现在打印对象,我将得到以下结果,例如:
<img src="Controls/RiverLevels/ChartImage.jpg?Id=471&ChartType=Histogram" id="StationDetails_Chart1_chartImage" alt="Current river level" />
我想在上面一行中提取的部分是Id=之后的471
我尝试在对象上使用re.search,但似乎该对象不是文本
任何帮助都将不胜感激 您可以调整以下内容:
s = '<img src="Controls/RiverLevels/ChartImage.jpg?Id=471&ChartType=Histogram" id="StationDetails_Chart1_chartImage" alt="Current river level" />'
from bs4 import BeautifulSoup
import re
from urlparse import urlsplit, parse_qs
soup = BeautifulSoup(s)
# find the node with a src starting with Controls
node = soup.find('img',{'src': re.compile("^Controls")})
# Break up the url in the src attribute
url_split = urlsplit(node['src'])
# Parse out the query parameter from the url
qs = parse_qs(url_split.query)
# Display the value for `Id`
print qs['Id'][0]
您希望确保正在对对象的源执行正则表达式搜索。您可以尝试一下:
import re
ele = soup_station.find('img')
src = ele['src']
match = re.search(r'\?Id=(\d+)', src)
ele_id = match.group(1)
当find发现一个没有src属性的对象时,我遇到了一个问题。我不知道如何修复它,所以我尝试了URLSPT的答案。不过还是谢谢你。