
uj5u.com熱心網友回復:
如果您想抓取所有以您開頭的類名,product_cat-您可以通過以下方式進行comprehension- 它迭代您的產品,選擇串列的值,迭代它并僅回傳您的模式的class這些名稱。startswith()
注意: comprehension是基于一個集合,所以你會避免重復的類名:
set(c.split('product_cat-')[-1] for p in products for c in p.get('class') if c.startswith('product_cat-'))
#output
{'pasy-napedowe', 'uszczelnienia-hydrauliki-silowej', 'lozyska', 'lancuchy-i-kola-lancuchowe', 'uncategorized'}
在您的流程中包含上述方法,要獲取每個產品的類資訊,您可以使用next()迭代類名:
cat = next(c.split('product_cat-')[-1] for c in product.get('class') if c.startswith('product_cat-'))
例子
...
products = soup.find('ul', {'class':re.compile('^products')}).find_all('li')
data = []
for product in products:
try:
productName = product.find('span',{'class':'sku'}).text
except:
productName = 'none'
try:
cat = next(c.split('product_cat-')[-1] for c in product.get('class') if c.startswith('product_cat-'))
except:
cat = 'none'
data.append({
'productName':productName,
'cat':cat
})
df = pd.DataFrame(data)
df.to_csv('products.csv', index=False)
輸出
| 產品名稱 | 貓 |
|---|---|
| ZZ 90 105 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 85 100 5 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 80 95 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 75 90 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 70 85 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 65 80 5 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 65 80 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 60 75 5 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 55 65 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 50 60 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 45 55 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 40 50 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 35 45 4 VAY | uszczelnienia-hydrauliki-silowej |
| ZZ 30 40 4 VAY | uszczelnienia-hydrauliki-silowej |
| XPA 710 CT | 帕西納佩多 |
| UCP 202 KB | 洛日斯卡 |
| U298/U291 SET9 | 洛日斯卡 |
uj5u.com熱心網友回復:
您可以使用 lambda 函式并使用startsWith函式,如下所示:
products = soup.findAll("li", {"class" : lambda L: L and L.startswith('product_cat-')})
或者使用正則運算式,如下所示:
products = soup.findAll("li", {"class" : re.compile('product_cat-.*')})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455131.html
