我一直在尝试使用Jericho HTML Parser和Selenium IDE,以便在多个页面中从HTML中的特定位置提取文本。
我还没有找到一个如何做到这一点的简单例子,我不知道java。
我想在第一个表格中的所有HTML页面,第4行,第1个div中找到任何文本字符串:
</table>
<tr class="abc"><td class="xyz"><div align="center">The Text I don't want</div></td></tr>
<tr class="abc"><td class="xyz"><div align="center">The Text I don't want</div></td></tr>
<tr class="abc"><td class="xyz"><div align="center">The Text I don't want</div></td></tr>
<tr class="abc"><td class="xyz"><div align="center">The Text I want</div></td></tr>
</table>
将所选文本打印到列表中的txt文件,如下所示:
The Text I want
Another Text I want
所有源文件都存储在本地,并且可能包含错误的HTML,因此认为Jericho可能最适合此目的。但是我很乐意学习任何方法来达到预期的效果。
答案 0 :(得分:0)
最后,我选择了beautifulsoup并使用了类似这样的python脚本:
# open source html file
with open(html_pathname, 'r') as html_file:
# using BeautifulSoup module search html tag's tree
soup = BeautifulSoup(html_file)
# find according your criteria "1st table, 6th tr, 1st td, 1st div"
trs = soup.html.body.table.tr.findNextSiblings('tr')[4].td.div
# write found text to result txt
print ' - writing to result txt'
result_file.write(''.join(trs.contents) + '\n')
print ' - ok!'