好的。这是我的第一个问题 所以我试图让这个程序在HTML源代码中搜索“你有错误”这个短语。问题是当我尝试
html_data=urllib2.open(site).read()
if html_data.find(string):
print "It's found"
它没有找到它。虽然当我打印html_data时,它在那里找不到任何标签。 有人可以帮我吗?
答案 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: