私は小売ウェブサイト内のすべてのカテゴリとサブカテゴリを取得しようとしています。私はBeautifulSoupを使用して、一度そのカテゴリーに属するすべての製品を引き出すことができます。しかし、私はカテゴリのループに苦しんでいます。私はこれをテストウェブサイトとして使用していますhttps://www.uniqlo.com/us/en/womenPython web scraping - すべてのカテゴリとサブカテゴリをループします
ウェブサイトの左側にある各カテゴリとサブカテゴリをどのようにループするのですか?問題は、ウェブサイトがすべてのサブカテゴリを表示する前にカテゴリをクリックしなければならないことです。カテゴリ/サブカテゴリ内のすべての製品をcsvファイルに展開したいと思います。これは私がこれまで持っているものです。
import bs4
import json
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
myurl = 'https://www.uniqlo.com/us/en/women/'
uClient = uReq(myurl)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html,"html.parser")
filename = "products.csv"
file = open(filename,"w",newline='')
product_list = []
containers = page_soup.findAll("li",{"class" : lambda L: L and
L.startswith('grid-tile')}) #Find all li with class: grid-tile
for container in containers:
product_container = container.findAll("div",{"class":"product-swatches"})
product_names = product_container[0].findAll("li")
for i in range(len(product_names)):
try:
product_name = product_names[i].a.img.get("alt")
product_mod_name = product_name.split(',')[0].lstrip()
print(product_mod_name)
except:
product_name = ''
i +=1
product = [product_mod_name]
print(product)
product_list.append(product)
import csv
with open('products.csv','a',newline='') as file:
writer=csv.writer(file)
for row in product_list:
writer.writerow(row)
感謝!!私はこれに2週間を費やして、まだ理解できませんでした。私は今これを試してみましょう。 – Futochan
もしそれが彼らに想定されていることをしたら、答えとしてそれを受け入れるようにしてください。ありがとう。 – SIM