Мне регулярно отправляют текстовый файл с html-содержимым в одном из столбцов.Я надеялся, что смогу сделать красивую пару против этого столбца, но кажется, что источники там ограничены.
sample.csv:
id web-scraper-order html_content
0 15636 <div class="product-details detail-row"><div c...
1 15619 <div class="product-details detail-row"><div c...
2 15656 <div class="product-details detail-column"><di...
Желаемый результат:
id web-scraper-order html_content html_content2
0 15636 <div class="product-details detail-row"><div c... ['EF1744','Grey Three/Off White/Gold Metallic','$120','2019-06-22']
1 15619 <div class="product-details detail-row"><div c...['...','...','...','...']
2 15656 <div class="product-details detail-column"><di...['...','...','...','...']
содержание в html_content
<div class="product-details detail-row"><div class="detail"><div class="pinfo-container"><span class="icon"></span><span class="title">Style</span></div><span> EF1744 </span></div><div class="detail"><div class="pinfo-container"><span class="icon"></span><span class="title">Colorway</span></div><span> Grey Three/Off White/Gold Metallic </span></div><div class="detail"><div class="pinfo-container"><span class="icon"></span><span class="title">Retail Price</span></div><span> $120 </span></div><div class="detail"><div class="pinfo-container"><span class="icon"></span><span class="title">Release Date</span></div><span> 2019-06-22 </span></div></div>
Требуемый текст ниже для каждой строки:
['EF1744','Grey Three/Off White/Gold Metallic','$120','2019-06-22']
Я нашел похожий пост здесь но, похоже, не работает с моим, поскольку мне нужно указать столбец.
Очень высокомерно я это сделал, но не повезло ....
import numpy as np
import pandas as pd
import re
from bs4 import BeautifulSoup
d = pd.read_csv("sample.csv")
df = pd.DataFrame(d,columns=['web-scraper-order','html_content'])
soup = BeautifulSoup(df['html_content'],'xml')
style = [item.text.strip() for item in soup.find_all('div', class_='detail')]