使用Python检查网页上是否有某些单词?

Bha*_*axy 1 python web

我有一个单词列表,在Python中我需要遍历每个单词并检查单词是否在网站上.

目前,这是我所拥有的(与此问题有关)的片段:

words = ['word', 'word1', 'word2']
site = urllib.request.urlopen(link)
for word in words:
    if word in site:
       print(word)
    else:
       print(word, "not found")
Run Code Online (Sandbox Code Playgroud)

我有一个单词列表,我打开网站,然后我遍历每个单词检查站点中的单词.请注意,我正在使用一个网站,其中包含所有这些单词(我自己设置,我可以验证它是否有效),链接是网站的网址.

问题是,我经常去" 未发现",它似乎永远不会在网站上找到的话.

代码有什么问题?这似乎是一个语义错误,因为语法工作正常,并且没有抛出异常(虽然在我的最后我确实有异常处理,但它仍会报告是否抛出异常).

Gre*_*ill 7

urlopen()函数返回"类文件对象".要读取数据,您必须致电read():

site = urllib.request.urlopen(link).read()
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以读取数据,但这是将整个页面数据加载到内存中以便快速搜索的简单方法.

您的代码编写的原因是因为类似文件的对象也是可迭代的,这意味着它可以与in运算符一起使用.但它没有做你想要的.

  • 您要查找的单词可能不会出现在下载的HTML中.当页面在浏览器中加载时,可能稍后使用Javascript将它们添加到DOM中.如果没有关于您正在加载的页面和您正在寻找的单词的更多信息,则很难提供更具体的答案. (3认同)