Python Объединить несколько выражений компиляции в findall

Я сам написал код, и он выглядит так

import requests
from bs4 import BeautifulSoup
import re
import pandas as pd

URL = 'https://www.books.toscrape/j/detail/164857/963108'
content = requests.get(URL).content
soup = BeautifulSoup(content,"html.parser")

phone = soup.find_all(text=re.compile("phone|phone"))
name = soup.find_all(text=re.compile("name|name"))
mail = soup.find_all(text=re.compile("mail|mail"))

df = pd.DataFrame([phone,name,mail,])
df.to_csv('D:\\products.csv', index=False, encoding='utf-8')

да, это выглядит странно, я надеюсь, что эти три фандалла можно объединить в один, как это

F = soup.find_all(text=re.compile("phone|phone")),soup.find_all(text=re.compile("name|name")),soup.find_all(text=re.compile("mail|mail"))

приди и помоги мне

Какую проблему вы хотите решить, объединив «findall»?

Michael Butscher 22.03.2022 20:30

,Я изучаю это, поэтому мне любопытно, должна ли быть возможность слияния,Хотелось бы, чтобы это выглядело более лаконично, а выходное значение занимало бы одну строку, я хочу, чтобы имя, телефон и почтовый ящик были в одном месте линия

jeri teri 22.03.2022 20:41

какой правильный URL?

QHarr 23.03.2022 03:31
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Один из способов написать это короче:

data = [soup.find_all(text=re.compile(pat)) for pat in ("phone", "name", "mail")]

df = pd.DataFrame(data)

отлично, ты решил мою проблему,

jeri teri 23.03.2022 08:24

Другие вопросы по теме