我正在努力浏览网站以查找特定的单词。我使用带有bs4的re.compile来搜索单词。如果我的单词中包含反斜杠('\'),则出现问题。我希望可以在此方面获得一些帮助。我的代码通常是这样
results = self.soup.find_all(string=re.compile('.*{0}.*'.format(searched_word), re.IGNORECASE), recursive=True)
当我尝试使用re.error: bad escape \M at position 13
时,此代码将引发错误searched_word = Software\Microsoft\Windows\CurrentVersion\Run
我在某处读到为了避免反斜杠,我应该将其设置为Software\\Microsoft\\Windows\\CurrentVersion\\Run
,这会引发错误。或Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run
不会引发错误,但不会返回文本。
答案 0 :(得分:0)
似乎您没有在转义re.compile()
的字符串。为此,请使用re.escape()
(doc):
results = self.soup.find_all(string=re.compile('.*{0}.*'.format(re.escape(searched_word)), re.IGNORECASE), recursive=True)