【问题标题】:Searching through webpage通过网页搜索
【发布时间】:2011-06-22 23:53:54
【问题描述】:

嘿,我正在处理一个需要浏览网页的 Python 项目。我想通过查找特定文本,如果它找到文本,那么它会打印出一些东西。如果没有,它会打印出一条错误消息。我已经尝试过使用不同的模块,例如 libxml,但我不知道该怎么做。

有人可以帮忙吗?

【问题讨论】:

  • 您必须在整个网页(包括 HTML 标签)中搜索还是只在您使用浏览器访问该页面时可以看到的文本中搜索?

标签: python search text find webpage


【解决方案1】:

你可以做一些简单的事情,比如:


import urllib2
import re

html_content = urllib2.urlopen('http://www.domain.com').read()

matches = re.findall('regex of string to find', html_content);

if len(matches) == 0: 
   print 'I did not find anything'
else:
   print 'My string is in the html'

【讨论】:

  • 正则表达式不是正确的工具,当涉及到搜索/解析 (x)html.*.com/questions/1732348/…
  • 如果你想解析 DOM,我当然同意正则表达式不是正确的方法。也就是说,如果您想在任何文本块上查找文本的 sn-p,我建议使用正则表达式。文本是否为 html 并不重要,如果您正在寻找特定的模式。
  • @dplouffe 这个帖子已经有很多年了,你知道这是否仍然是 Python 的最佳选择吗?
【解决方案2】:

lxml 很棒:http://lxml.de/parsing.html

我经常将它与 xpath 一起用于从 html 中提取数据。

另一个选项是http://www.crummy.com/software/BeautifulSoup/,这也很棒。

【讨论】: