我想在抓取的 html 页面中搜索特定的字符串,如果存在字符串,请执行一些操作。
find = soup.find('word')
print(find)
但这给了None
即使页面中有word
。另外,我尝试了:
find = soup.find_all('word')
print(find)
它只给[]
。
find
方法的作用是搜索标签。因此,当您执行soup.find('word')
时,您要求BeautifulSoup找到所有<word></word>
标签。我认为这不是你想要的。
有几种方法可以执行您的要求。您可以使用re
模块通过正则表达式进行搜索,如下所示:
import re
is_present = bool(re.search('word', response.text))
但是您可以避免导入额外的模块,因为您使用 Scrapy,它具有用于处理正则表达式的内置方法。只需在选择器上使用re
方法:
is_present = bool(response.xpath('//body').re('word'))
尝试find = soup.findAll(text="word")