Ale*_* M. 3 python string split
我正在开发一个从网页获取信息的项目.在html源代码中我有以下内容:
Resultado de Busca: Foram encontrados 264 casais
我需要得到"encontrados"和"casais"之间的数字
无论如何在Python中有这样做吗?我应该使用什么字符串函数?我想在这种情况下避免使用正则表达式.
import urllib.request
f = urllib.request.urlopen("http://listadecasamento.fastshop.com.br/ListaCasamento/ListaCasamentoBusca.aspx?Data=2013-06-07")
s = f.read()
print(s.split())
Run Code Online (Sandbox Code Playgroud)
到目前为止我得到了这个,但现在我找不到我需要的号码了.
import urllib.request
f = urllib.request.urlopen("http://listadecasamento.fastshop.com.br/ListaCasamento/ListaCasamentoBusca.aspx?Data=2013-06-07")
s = f.read()
num = int(s[s.index("encontrados")+len("encontrados"):s.index("casais")])
Run Code Online (Sandbox Code Playgroud)
这给我下面的错误
TypeError:类型str不支持缓冲区API
我推荐使用像Beautiful Soup这样的库,如果它是你要解析的HTML.不需要正则表达式.
编辑
使用刚刚添加的URL,这是获取HTML对象的示例代码:
import BeautifulSoup
import re
import urllib
data = urllib.urlopen('http://listadecasamento.fastshop.com.br/ListaCasamento/ListaCasamentoBusca.aspx?Data=2013-06-07').read()
soup = BeautifulSoup.BeautifulSoup(data)
element = soup.find('span', attrs={'class': re.compile(r".*\btxt_resultad_busca_casamento\b.*")})
print element.text
Run Code Online (Sandbox Code Playgroud)
这将span在页面上找到包含该类的HTML 元素txt_resultad_busca_casamento,我相信这是您要提取的数据.从那里你可以解析.text属性以获得你感兴趣的确切数据.
编辑2
哎呀,刚才意识到使用正则表达式......看起来BeautifulSoup中的类匹配并不完美!这条线应该起作用,至少在网站更改HTML之前:
element = soup.find('div', attrs={'id': 'ctl00_body_uppBusca'}).find('span')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9890 次 |
| 最近记录: |