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

2 投票
4 回答
1060 浏览
提问于 2025-04-17 13:43

好的,这是我在这里的第一个问题。

我正在尝试写一个程序,去搜索HTML源代码中的短语“You have an error”。问题是,当我尝试这样做时:

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

它找不到这个短语。虽然当我打印出html_data时,里面确实有这个短语,而且没有任何标签。

有没有人能帮我解决这个问题呢?

4 个回答

0

有时候,代码是在加载和执行JavaScript时动态生成的。在这种情况下,你需要运行JavaScript,才能得到和浏览器查看源代码时完全一样的页面内容。你可能想要写一个浏览器扩展,这样如果需要的话,它就可以把找到的内容发送到你的Python服务器。这样做的好处是,你可以使用浏览器的JavaScript虚拟机。

1

你查看的页面的大小写是否匹配?你能告诉我们你正在尝试阅读的页面是什么吗?因为这段代码看起来运行得很好:

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

    You have an error

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


    It's found
2

str.find() 这个方法会返回一个数字,表示找到的字符在字符串中的位置,如果没找到就返回 -1。所以下面的写法是不对的:

if html_data.find(string):

正确的写法应该是:

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

另外,如果你不需要知道匹配的具体位置:

if string in html_data:

撰写回答