2

好的。这是我在这里的第一个问题所以我正在尝试制作这个程序,它在 HTML 源代码中搜索短语“你有错误”。问题是当我尝试

    html_data=urllib2.open(site).read()
    if html_data.find(string):
       print "It's found"

它没有找到它..虽然当我打印 html_data 时,它在那里找到,没有任何标签。有人可以帮我吗?

4

4 回答 4

2

str.find()返回索引(如果未找到,则返回 -1)。因此以下是不正确的:

if html_data.find(string):

它应该是:

if html_data.find(string) != -1:

或者,如果您不需要知道比赛的位置:

if string in html_data:
于 2013-01-26T14:07:18.030 回答
1

大写/小写是否与您正在查看的页面匹配?您能否给我们您尝试从中阅读的页面?因为这段代码似乎工作正常:

    >>> string = 'You have an error'
    >>> page = """

    You have an error

        """
    >>> if string in page:
        print "It's found"


    It's found
于 2013-01-26T05:17:54.693 回答
0

有时代码是在 javascript 加载和执行时动态生成的。在这种情况下,您将需要执行 JavaScript 以获取与从浏览器的 View Source 获取的页面源完全相同的页面源。您可能想为此编写一个浏览器扩展程序,然后如果需要将它找到的内容发送到您的 python 服务器。这样做的好处是您可以使用浏览器的 JavaScript 虚拟机。

于 2013-01-26T05:53:30.410 回答
0

find如果找不到字符串,则方法返回 -1,而不是 0。所以,你应该像这样使用它

if html_data.find(string) != -1:
于 2013-01-26T14:04:05.087 回答