下面的代码下载一个网页,找到一个元素,然后运行一个正则表达式来解析字符串中的一个数字。它似乎适用于我的python3.7测试系统,但不适用于python3.5。我正在下载一个网页,找到一个使用Xpath的文本块。xpath返回类似“International(21)”或“Books(99)”的内容,我想提取出数字21或99。在
在python3.5中,我返回了'TypeError:'_sre.sre_匹配'对象不可订阅。'
我不相信错误是版本之间的差异,但这是唯一已知的差异_sre.sre_匹配当我打印CountObj时,object;span=(14,18),match='(21)>;'。在
我应该为Python3.5做些调整吗?有更好的方法来编写它吗?在
driver = webdriver.Chrome()
driver.get(url); #Download the URL passed from mysql
CatAndCount = driver.find_element_by_xpath('//h2 [@class="searchResultsTitle"]').text
# the above line returns with a name and value like 'International (21)'
CountObj = re.search("\((.*?)\)",CatAndCount) # look for the number, 21 in example
print (CountObj) # for testing
CountVal=CountObj[1]
您需要调用} 方法,并将捕获的组的数目作为参数来获得该值(对于整个匹配,为空或0)。因此,要获得第一个捕获的组:
re.MatchObject
上的^{编辑:
如果您有多个捕获的组,并且想要它们全部,那么使用
^{pr2}$groups()
方法将它们作为一个元组来获取,例如:或者,如果您想要特定的组,例如第一个和第四个捕获的组,请使用
group()
来获得所请求的组的元组:相关问题 更多 >
编程相关推荐