我需要解析器不是从班级收集数据<ul class="b-catalog__subcats is-inner">,而是收集所有其他信息,我该怎么做,请告诉我???
解析器从中获取数据的 HTML 代码:
<div class="wrapper-short">
<h4>Особенности:</h4>
<ul>
<li>Многоплатная схема</li>
<li>Подключение 220 В</li>
<li>Горелка 26 серии в комплекте</li>
<li>ПВ 60% при токе 200 Ампер</li>
<li>Полноценная функция ручной дуговой сварки MMA</li>
<li>Автоматическая защита от перегрева</li>
<li>Регулировка продувки газом после сварки</li>
<li>Полная комплектация + ЗИП</li>
<li>Прочная коробка для транспортировки</li>
<li>Гарантия 2 года</li>
</ul>
<h4>Комплектация:</h4>
<ul>
<li>Инверторный аппарат аргонодуговой сварки - 1 шт.</li>
<li>Клемма заземления с кабелем - 1 шт. </li>
<li>Аргонодуговая горелка 26 серии - 1 шт.</li>
<li>Паспорт оборудования - 1 шт.</li>
</ul>
<ul class="b-catalog__subcats is-inner">
<li>
<a href="https://ptk-svarka.ru/catalog/svarochnye-invertory/220v-2">220 вольт</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/apparaty-argonodugovoy-svarki-tig/tig-200">TIG 200</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/apparaty-argonodugovoy-svarki-tig/220v">220 вольт</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/svarochnye-invertory/master-2">Мастер</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/apparaty-argonodugovoy-svarki-tig/postoyannyj-tok">DC</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/apparaty-argonodugovoy-svarki-tig/master">Мастер</a>
</li>
<li>
<a href="https://ptk-svarka.ru/catalog/svarochnye-invertory/200-amper">200 ампер</a>
</li>
</ul>
</div>
这是解析器本身:
import requests
from bs4 import BeautifulSoup
import csv
import os
URL = 'https://ptk-svarka.ru/product/ptk-master-tig-200'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'accept': '*/*'}
def get_html(url, params=None):
r = requests.get(url, headers=HEADERS, params=params)
return r
def get_html_vivod(html):
svarka = []
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_='b-product-tab__item is-active')
for item in items:
svarka.append({
"text": item.find('div', class_='wrapper-short')
})
return svarka
html = get_html(URL)
print(get_html_vivod(html.text))
如果只考虑类
wrapper-short(页面上还有其他数据),那么可以如下获取数据。通过查找具有空类值的
b-catalog__subcats is-inner标记来避免该类。该块包含三个,其中两个没有类。ulitems.find_all('ul', class_='')wrapper-shortul