Я сам написал код, и он выглядит так
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"))
приди и помоги мне
,Я изучаю это, поэтому мне любопытно, должна ли быть возможность слияния,Хотелось бы, чтобы это выглядело более лаконично, а выходное значение занимало бы одну строку, я хочу, чтобы имя, телефон и почтовый ящик были в одном месте линия
какой правильный URL?
Один из способов написать это короче:
data = [soup.find_all(text=re.compile(pat)) for pat in ("phone", "name", "mail")]
df = pd.DataFrame(data)
отлично, ты решил мою проблему,
Какую проблему вы хотите решить, объединив «findall»?