サービス
サービスを探す
プロ人材を探す
仕事を探す
ブログを探す
サービス
サービスを探す
プロ人材を探す
仕事を探す
ブログを探す
- サービスを探す
- プロ人材を探す
- ノウハウ・素材を探す
- ブログを探す
- エージェントに人材を紹介してもらう
- 単発の仕事を探す
- 継続 (時給/月給) の仕事を探す
- エージェントに仕事を紹介してもらう
購入・発注したい方
受注・働きたい方
カテゴリ一覧
- PRO認定
- 人気のご利用シーン
- コンテンツ
弁護士検索・法律Q&A(法律相談)

import csv
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys as keys
from selenium.webdriver.common.by import By
driver = None
def setup_webdriver():
global driver
### Google Chromeのフォルダをコピーすることで、スクレイピング専用ブラウザにできます
CHROMEDRIVER = r"C:\stuff\apps\webdriver\Google\Chrome\Application\chrome.exe" # Google Chromeを使用
CHROMEUSERDATA = r"C:\stuff\apps\webdriver\Google\Chrome\Application\User Data" # User Dataを指定
chrome_service = Service(executable_path=CHROMEDRIVER)
options = webdriver.ChromeOptions()
options.add_argument(f'service={chrome_service}')
options.add_argument(f'--user-data-dir={CHROMEUSERDATA}')
options.add_argument('--profile-directory=Profile 1')
# options.add_argument('--incognito')
# options.add_argument('--headless')
# options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)
def get_product_urls():
### カテゴリ: レディース アパレル
### キーワード:dress
url = 'httpsME://jp.shein.com/pdsearch/dress/?child_cat_id=4436&page=1'
driver.get(url)
product_urls = []
el_products = driver.find_elements(By.CSS_SELECTOR, ".S-product-item__link")
for elem_product in el_products:
product_urls.append(elem_product.get_attribute("href"))
return product_urls
def get_product_listing(product_url):
driver.get(product_url)
el_product_title = driver.find_element(By.CSS_SELECTOR, ".product-intro__head-name")
el_product_price = driver.find_element(By.CSS_SELECTOR, ".product-intro__head-mainprice span")
el_product_sku = driver.find_element(By.CSS_SELECTOR, ".product-intro__head-sku")
el_product_rate_num = driver.find_element(By.CSS_SELECTOR, ".rate-num")
product_title = el_product_title.text
product_price = el_product_price.text
product_sku = el_product_sku.text.replace('SKU: ', '')
product_rate = el_product_rate_num.text
return [product_title, product_price, product_sku, product_rate, product_url]
setup_webdriver()
product_list = []
product_urls = get_product_urls()
max_product_fetch = 20 # 1ページに120の商品が現れるので、20商品に減らす
for product_url in (product_urls[0:max_product_fetch] if len(product_urls) >= max_product_fetch else product_urls):
product_list.append(get_product_listing(product_url))
# csvに出力
with open('listing.csv', 'w', newline="", encoding="utf-8") as f:
writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
writer.writerow(['商品名', '値段', 'SKU','平均評価', 'URL'])
writer.writerows(product_list)
