Python:在源代码中找不到字符串

时间:2013-01-26 04:41:57

标签: python

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

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

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

4 个答案:

答案 0 :(得分:2)

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

if html_data.find(string):

应该是:

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

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

if string in html_data:

答案 1 :(得分:1)

上/下案例是否与您正在查看的页面相匹配?你能给我们你想要阅读的页面吗?因为这段代码似乎工作正常:

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

    You have an error

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


    It's found

答案 2 :(得分:0)

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

答案 3 :(得分:0)

find方法如果找不到字符串则返回-1,而不是0.所以,你应该像

一样使用它
if html_data.find(string) != -1: