我正在尝试使用附带的文本在网页中找到>>> from bs4 import BeautifulSoup as BS
soup = BS('<a>lalala <del>10</del> lalala </a>')
soup1 = BS('<a>lalala 10 lalala </a>'
>>> soup.find_all('a', text=re.compile('lalala'))
[]
>>> soup1.find_all('a', text=re.compile('lalala'))
[<a>lalala 10 lalala </a>]
标记,使用Python中的BeautifulSoup 4。我使用了一个真实的表达式,如下例所示:
<del></del>
为什么嵌入式<a>
标记阻止我查找其文本包含它的#!/bin/sh
while true; do
if($update)
then
who | awk {'print$1'} > first_user_list #store original user list
update=false
fi
who | awk {'print$1'} > updated_user_list
(diff first_user_list updated_user_list) | cut -c 3- > in_out_list
inOutVar=`cat in_out_list` ## use `` or $(), not ''
length_first=$(wc -l < updated_user_list)
length_update=$(wc -l < first_user_list)
if [[ "$length_first" -lt "$length_update" ]]; then
echo -e "$inOutVar" " has logged out"
update=true
elif [ "$length_first" -gt "$length_update" ]; then
echo -e "$inOutVar" " has logged in"
update=true
else
echo No user has logged in/out in the last 3 seconds
fi
sleep 3
标记?我该如何解决?
答案 0 :(得分:1)
这与你的正则表达式无关,但是在{Beautiful Soup 4.4.0中} .string
(text
参数被称为string
)的方式工作,它返回如果标签包含多个内容,则为无。
您可以使用a function执行此操作:
def in_text(tag):
return tag.name == 'a' and 'lalala' in tag.text
soup.find_all(in_text)
哪个收益率:
[<a>lalala <del>10</del> lalala </a>]