2015-08-09 142 views
0

所以我刮的网站,并试图输出这些span标签之间到底是(这将取决于我凑什么网址更改)Python 2.7版解析正则表达式

<span class="inviter-name">tickzapman12345</span> 


import urllib2 
import re 

url = "http://beta.cursevoice.com/join/jt95" 
req = urllib2.Request(url) 
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox') 


response = urllib2.urlopen(req) 

matchObj = re.search(r'<span class="inviter-name">(.*?)</span>',str(response)) 

f = open('output.txt','w') 
f.write(str(matchObj)) 
f.close() 

然而,当我检查输出文件,它只是说“无”,是我的正则表达式的错误?

+0

'matchObj = re.search(R '<跨度类= “邀请者名”>(。*?)',STR(响应))。组() ' –

+0

AttributeError:'NoneType'对象没有属性'group' –

回答

1

您可以使用BeautifulSoup分析器而不是正则表达式。

>>> from bs4 import BeautifulSoup 
>>> s = '<span class="inviter-name">tickzapman12345</span>' 
>>> soup = BeautifulSoup(s) 
>>> soup.select('span.inviter-name')[0].text 
'tickzapman12345' 

matchObj = re.search(r'<span class="inviter-name">(.*?)</span>',response.read()) 
f = open('output.txt','w') 
f.write(matchObj.group(1)) 
f.close() 
+0

我想使用正则表达式;我觉得我的代码应该工作 –

+0

'response'变量的价值是什么? –

+0

>” –