Python:无法在源代码中找到字符串
好的,这是我在这里的第一个问题。
我正在尝试写一个程序,去搜索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: