Pythonスクレイピングに関して詳しい方お助けください!😭😭 (投稿ID : utxnw)

5
お気に入り登録
5
お気に入り登録済み
お気に入りに登録しました
ログインが必要です
更新2022年5月4日 19:03
作成2022年5月4日 19:03

はじめまして!青学の二年生で21歳の男です!
Python初心者の者です!


https://su-gi-rx.com/archives/5838

のサイトを見ながら、Pythonスクレイピングについて学習していたのですが最後のCSV出力のところがうまくいきません。

CSVファイルは作成されているのですが中身が空っぽです、、、

コードはサイトのものをコピペしただけなので同じはずなのですがどこに問題があるのかわかりません。

解決法がお分かりの方はいらっしゃらないでしょうか?

これを試してみたら?等のアドバイスを気軽にメッセージにて送って頂けたら嬉しいです、、、

それとこのサイトに載っているコードを一から解説して頂きたいです。

なんとなーくで理解しているのですが、ちょっとやっぱり正確に理解したいところもあるので!

簡単にでいいので通話等繋げて教えてくださる親切な方がいらっしゃったら嬉しいです!

ちなみにそのコードとは

from selenium import webdriver
import time
import pandas
from webdriver_manager.chrome import ChromeDriverManager

#キーワード入力
search_word = input("検索キーワード=")

# メルカリ
url = ' https://www.mercari.com/jp/search/?keyword=' + search_word

# chromedriverの設定とキーワード検索実行
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)

# ページカウントとアイテムカウント用変数
page = 1
item_num = 0
item_urls = []

while True:
print("Getting the page {} ...".format(page))
time.sleep(1)
items = driver.find_elements_by_class_name("items-box")
for item in items:
item_num += 1
item_url = item.find_element_by_css_selector("a").get_attribute("href")
print("item{0} url:{1}".format(item_num, item_url))
item_urls.append(item_url)
page += 1

try:
next_page = driver.find_element_by_css_selector("li.pager-next .pager-cell:nth-child(1) a").get_attribute("href")
driver.get(next_page)
print("next url:{}".format(next_page))
print("Moving to the next page...")
except:
print("Last page!")
break

# アイテムカウントリセットとデータフレームセット
item_num = 0
columns = ["item_name", "cat1", "cat2", "cat3", "brand_name", "product_state", "price", "url"]
df = pandas.DataFrame(columns=columns)

try: # エラーで途中終了時をtry~exceptで対応
# 取得した全URLを回す
for product_url in item_urls:
item_num += 1
print("Moving to the item {}...".format(item_num))
time.sleep(1)
driver.get(product_url)

item_name = driver.find_element_by_css_selector("h1.item-name").text
print("Getting the information of {}...".format(item_name))

cat1 = driver.find_element_by_css_selector("table.item-detail-table tbody tr:nth-child(2) td a:nth-child(1) div").text
cat2 = driver.find_element_by_css_selector("table.item-detail-table tbody tr:nth-child(2) td a:nth-child(2) div").text
cat3 = driver.find_element_by_css_selector("table.item-detail-table tbody tr:nth-child(2) td a:nth-child(3) div").text
try: # 存在しない⇒a, divタグがない場合をtry~exceptで対応
brand_name = driver.find_element_by_css_selector("table.item-detail-table tbody tr:nth-child(3) td a div").text
except:
brand_name = ""

product_state = driver.find_element_by_css_selector("table.item-detail-table tbody tr:nth-child(4) td").text
price = driver.find_element_by_xpath("//div[1]/section/div[2]/span[1]").text
price = price.replace("¥", "").replace(" ","").replace(",", "")

print(cat1)
print(cat2)
print(cat3)
print(brand_name)
print(product_state)
print(price)
print(product_url)

se = pandas.Series([item_name, cat1, cat2, cat3, brand_name, product_state, price, product_url], columns)
df = df.append(se, ignore_index=True)
print("Item {} added!".format(item_num))

except:
print("Error occurred! Process cancelled but the added items will be exported to .csv")

df.to_csv("{}.csv".format(search_word), index=False, encoding="utf_8")
driver.quit()

print("Scraping is complete!")

です!
宜しくお願いいたします!

地域
JR山手線 - 新宿駅
投稿者にメールで問い合わせ

※問い合わせは会員登録とログイン必須です

注意事項

ジモティーからの注意事項

トラブルの際は 警察等の捜査依頼に積極的に協力しております。
ご相談は こちら

詐欺やトラブルにご注意ください

投稿者 Syun
男性
投稿: 2805
身分証
電話番号
認証とは
はじめまして新卒一年目の24歳です。アプリ開発エンジニアとしてIT企業で働...
評価
  • 良い 退会済みユーザー

    この度はありがとうございました。また機会があればよろしくお願いします。

  • 良い たーぼう

    スムーズにやり取りができました。お土産までいただき感謝しております。ありが...

コメント

1件
良識のあるコメントを心がけご利用ください。
不適切な表現や、不快な言葉遣いなどは 利用制限アカウント停止 の対応を取らせていただいております。
昼夜さんのプロフィール画像
3年弱前
コメントの削除や不適切なコメントを報告するには、ログインが必要です
ログイン
print文でコンソールに出力はされていますか? もしされてないなら、サイト自体の構成が変化してできなくなってる可能性があります。
コメント内容をご確認ください

コメントは公開されます。

短いコメントはご覧になった他のユーザー様が不快に感じることがあります。

内容を修正

教えての助け合いの関連記事

Pythonスクレイピングに関して詳しい... 東京 助け合い を見ている人は、こちらの記事も見ています。

Syunさんのその他の投稿記事

関連の掲示板

ご利用ガイド
新着投稿の通知をメールで受け取る

登録した条件で投稿があった場合、メールでお知らせします。

キーワード
+ さらに詳しい条件を登録
カテゴリ
エリア
オンライン決済
配送可能
ー 閉じる
メールアドレス

利用規約 をご確認の上、登録をお願いします。