我被困住了,需要一些帮助来指出错误。 我试图从网页中提取一部分html代码,这是使用表完成的,并且在许多地方具有相同的类和id。因此我不能只用BeautifulSoup4来提取它。我需要一点正则表达式来提取。只有这样,才能使用html解析器根据regex返回的字符串提取所需的信息。但当regex无法处理某些汉字时,问题就出现了。我在某个地方读到过,它需要将字符串更改为unicode才能工作,但我自己却无法让它工作。部分代码如下:
import requests
import bs4
import re
fetch = requests.get('http://www.check4d.com')
mo = re.search(u'<td class="resultdamacailable">Da Ma Cai 1+3D 大馬彩(.+?)</table></div>' , fetch.text)
matched = mo.group()
print matched
我得到的错误是
回溯(最近一次呼叫): 文件“C:\Python27\check4d\u r5_今天.py“,第98行,in 匹配=mo.组() AttributeError:“NoneType”对象没有“group”属性
部分html代码:
<div class="outerbox"><table class="resultTable" align="center"><tr><td colspan="5"><table class="resultTable2" cellpadding="0" cellspacing="0"><tr><td class="resultdamacailable" style="width:20%"><img src=""/></td><td class="resultdamacailable">Da Ma Cai 1+3D 大馬彩</td></tr></table></td></tr><tr><td colspan="5"><table class="resultTable2" cellpadding="0" cellspacing="5"><tr><td class="resultdrawdate">Date: 03-05-2016 (Tue)</td><td class="resultdrawdate">Draw No: 4359/16</td></tr></table></td></tr><tr><td colspan="5"><table class="resultTable2" cellpadding="0" cellspacing="0"><tr><td style="width:45%" class="resultprizelable">1st Prize 首獎</td><td class="resulttop">1002</td></tr><tr><td style="width:45%" class="resultprizelable">2nd Prize 二獎</td><td class="resulttop">3605</td></tr><tr><td style="width:45%" class="resultprizelable">3rd Prize 三獎</td><td class="resulttop">0010</td></tr></table></td></tr><tr><td colspan="5" class="resultprizelable">Special 特別獎</td></tr><tr><td class="resultbottom">8079</td><td class="resultbottom">2293</td><td class="resultbottom">1891</td><td class="resultbottom">7657</td><td class="resultbottom">5781</td></tr><tr><td class="resultbottom">4989</td><td class="resultbottom">4586</td><td class="resultbottom">6868</td><td class="resultbottom">3129</td><td class="resultbottom">3635</td></tr><tr><td class="resultbottom" colspan="5"> </td></tr><tr><td colspan="5" class="resultprizelable">Consolation 安慰獎</td></tr><tr><td class="resultbottom">0901</td><td class="resultbottom">8750</td><td class="resultbottom">0152</td><td class="resultbottom">2929</td><td class="resultbottom">4220</td></tr><tr><td class="resultbottom">6213</td><td class="resultbottom">5185</td><td class="resultbottom">8283</td><td class="resultbottom">9864</td><td class="resultbottom">3029</td></tr></table></div>
我想它一定和汉字有关,因为我去掉它后,它会返回OK。但留下汉字将返回我不想要的匹配。你知道吗
这是我的建议。你知道吗
相关问题 更多 >
编程相关推荐