在整个 html 中使用 Beautiful Soup in Scrapy 搜索特定字符串



我想在抓取的 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")

最新更新