Я пытаюсь очистить определенный текст от определенных элементов таблицы на странице продукта Amazon.
URL_1 имеет все элементы - https://www.amazon.com/dp/B008Q5LXIE/ URL_2 имеет только «Ранг продаж» - https://www.amazon.com/dp/B001V9X26S
URL_1: в таблице «Сведения о продукте» есть 9 элементов, и меня интересует тольков разделах «Размеры товара», «Вес отправления», номер модели изделия и все «Ранги продавца»
Я не могу разобрать текст этих предметов, поскольку некоторые находятся в одном блоке кода, а другиене.
Я использую Beautifulsoup, и я запустил text.strip () на столе и получил все, но очень грязно.Я пытался использовать sou.find ('li') и text.strip (), чтобы найти отдельные элементы, но с рангом продавца он возвращает все 3 ранга, перемешанных в одном возврате.Я также попробовал регулярное выражение для очистки текста, но он не будет работать для 4 различных рангов продавца.Я имел успех, используя метод Try, Except, Pass для очистки и имел бы каждый из них в этом формате
A bad example of the code used, I was trying to get sales rank past the </b>
element in the HTML
#Sales Rank
sales_rank ='NOT'
try:
sr = soup.find('li', attrs={'id':'SalesRank'})
sales_rank = sr.find('/b').text.strip()
except:
pass
Я ожидаю, что смогу скрести перечисленные элементы в словарь.Я хотел бы видеть результаты как
dimensions = 6x4x4
weight = 4.8 ounces
Item_No = IT-DER0-IQDU
R1_NO = 2,036
R1_CAT = Health & Household
R2_NO = 5
R2_CAT = Joint & Muscle Pain Relief Medications
R3_NO = 3
R3_CAT = Naproxen Sodium
R4_NO = 6
R4_CAT = Migraine Relief
my_dict = {'dimensions':'dimensions','weight':'weight','Item_No':'Item_No', 'R1_NO':R1_NO,'R1_CAT':'R1_CAT','R2_NO':R2_NO,'R2_CAT':'R2_CAT','R3_NO':R3_NO,'R3_CAT':'R3_CAT','R4_CAT':'R4_CAT'}
URL_2: Единственный элемент, представляющий интерес на странице, - это «Рейтинг продаж».«Размеры продукта», «Вес при транспортировке», номер модели изделия отсутствуют.Тем не менее, я хотел бы получить возвращение, подобное URL_1, но отсутствующие элементы будут иметь значение «NA».Те же результаты, что и в URL_1, только «NA» дается, когда элемент отсутствует.Я успешно выполнил это, установив значение до оператора Try / Except.Пример: Вес Отправления = 'NA' ... затем запустите попытку / исключение: pass, чтобы я получил 'NA', и мой словарь не пуст.