我有一个单词列表,在 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")
我有一个单词列表,我打开网站,然后遍历每个单词以检查网站中的单词。请注意,我使用的是一个网站,上面有所有这些词(我自己设置,我可以验证它是否有效),链接是网站的 url。
问题是,我总是去“word not found”,而且似乎永远找不到网站上的单词。
代码有什么问题?这似乎是一个语义错误,因为语法工作正常,并且没有抛出异常(虽然在我的决赛中我确实有异常处理,但如果无论如何抛出异常它仍然会报告)。
请您参考如下方法:
urlopen() 函数返回一个“类文件对象”。为了读取数据,您必须调用read():
site = urllib.request.urlopen(link).read()
还有其他读取数据的方法,但这是一种将整个页面数据加载到内存中以便快速搜索的简单方法。
您的代码之所以能像编写的那样工作是因为类文件对象也是可迭代的,这意味着它可以与 in 运算符一起使用。但它并没有按照您的意愿行事。
