Я пытался соскрести Tumblr архив, класс DIV тег выглядит как дано в картинеИспользование регулярных выражений в find_all из BeautifulSoup
Класс начинается с «пост post_micro», я пытались использовать регулярное выражение, но не
soup.find_all(class_=re.compile('^post post_micro')
Я пытался использовать функцию в find_all для класса
def func(x):
if str(x).startswith('post_tumblelog'):
return True
и использовали его как:
soup.find_all(class_=func)
выше работает отлично, и я получаю то, что мне нужно. Но я хочу знать, как сделать это с помощью регулярных выражений и почему в FUNC (х),
str(x).startswith('post_tumblelog')
вычисляется как верно, когда имя класса начинается с «пост post_micro».
Использования .select дает error: Неподдерживаемый или недопустимый CSS-селектор: «[class^=« post »и остальные два параметра работают с« post_tumblelog », но не с« post post_micro », я не знаю, почему это происходит. – sandepp
да 2 из они работают лямбда-фу nction и regular expression one, но переданный аргумент должен быть «post_tumblelog» – sandepp
@sandepp - я только что проверил его со строками 'post_tumblelog' и' post post_micro', и они оба работали. Не возражаете ли вы опубликовать свой HTML-код и опубликовать какую версию BeautifulSoup вы используете? –