首先:我感觉真的很愚蠢,因为我知道这是一个简单的问题,答案就在我的鼻子底下.我到处都看到了答案,但似乎没有一个适合我的问题.
我正在尝试使用selenium获取页面中的答案数.这就是我所拥有的:
if browser.find_elements_by_css_selector("tr.unreaded"):
print "There's messages unreaded!"
unread_answers = browser.find_elements_by_css_selector("tr.unreaded")
for unread_row in unread_answers:
row_id = unread_row.get_attribute("id")
m = re.search('answer_row_\d*', row_id)
row_number = m.group(1)
print row_number
Run Code Online (Sandbox Code Playgroud)
这是我目前正在寻找的HTML文档的和平:
<tr id="answer_row_3121238" class="bla bla bla">
...
<tr id="answer_row_3121428" class="bla bla bla">
...
<tr id="answer_row_3124238" class="bla bla bla">
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:IndexError: no such group.
我知道因为我试过了因此取得了成功:
if browser.find_elements_by_css_selector("tr.unreaded"):
print "There's messages unreaded!"
unread_answers = browser.find_elements_by_css_selector("tr.unreaded")
for unread_row in unread_answers:
row_id = unread_row.get_attribute("id")
m = re.search('answer_row_\d*', row_id)
if m:
print "Fetched results!"
row_number = m.group(1)
print row_number
Run Code Online (Sandbox Code Playgroud)
输出是:
Fetched results!
Fetched results!
Fetched results!
如果我尝试:
print m
Run Code Online (Sandbox Code Playgroud)
我得到了三个对象.
您没有在正则表达式中使用任何捕获括号,因此没有组.
m = re.search('answer_row_(\d+)', row_id)
Run Code Online (Sandbox Code Playgroud)
另外请注意,你应该使用+,为一个或多个数字,而不是*.