前提・実現したいこと
こんにちわ。python初学者です。
seleniumでスクレイピングしたデータを順番にリストに格納して出力したいのですが、上手くいきません。
現在、下記の該当コードでarryリストのなかに
arry =
["テキスト要素", "テキスト要素","テキスト要素"....],["数字", "数字", "数字",...],["テキスト要素2""テキスト要素2""テキスト要素2"....]
このような感じで出力されてしまっているのですが、僕としては
arry=
[["テキスト要素", "数字", "テキスト要素2"]["テキスト要素", "数字", "テキスト要素2"]["テキスト要素", "数字", "テキスト要素2"]......]
このように1セットづつリストに格納したいのです。
厳密にいうと以前にこちらで質問させていただきzip()関数を使う方法とnumpyを使って
arry=
[["テキスト要素", "数字", "テキスト要素2"]["テキスト要素", "数字", "テキスト要素2"]["テキスト要素", "数字", "テキスト要素2"]......]
と格納することができました。
しかし、今回は、for文の中にfor文をいれて取得したいのですが、出力するとリストの中が何も入っていない状態になってしまいます。
for 〇〇 in 〇〇:
for 〇〇 in 〇〇:
print()
このようなイメージです。
どのようにすればいいのでしょうか??ここに新しく質問をたてなおさせていただきました。
ぜひお力を貸していただけないでしょうか??よろしくお願いします。
該当のソースコード
from selenium import webdriver import chromedriver_binary from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import urllib.request options = Options() options.headless = True options.add_argument('--headless') driver = webdriver.Chrome(options=options) driver.get("スクレイピングサイトURL") arry = [] selector = 'テキスト要素' element = driver.find_elements_by_css_selector(selector) element = [a.get_attribute("href") for a in element] date_element = "数字" dates = driver.find_elements_by_css_selector(date_element) dates = [b.text for b in dates] i = 'テキスト要素2' items = driver.find_elements_by_css_selector(i) items = [c.text for c in items] for x in element: for y in dates: for z in items: arry.append(x, y, z) print(arry)
試したこと
最後のこのコードで
for x in element: for y in dates: for z in items: q = arry.append(x, y, z) print(q)
for x in element: print(x) for y in dates: print(y) for z in items: print(z) q = arry.append(x, y, z) print(q)
ここで出力するとprint(x)はしっかり出力されるのですが、そのあとのprint(y)、print(z)は出力されなくなります、、、。
これはなぜなんでしょうか??ぜひアドバイスいただきたいです。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
mac10.15.3
python3.8
回答1件
あなたの回答
tips
プレビュー