Webスクレイピングをしたときに、ValueError: arrays must all be same length
と表示されるので、それを解決したいです。
書いたコード
import lxml.html from selenium import webdriver from bs4 import BeautifulSoup import pandas as pd import time test1 = [] test2 = [] test3 = [] for page in range(1,20): driver = webdriver.Chrome('/usr/local/bin/chromedriver') driver.get("https://*****.com/") data = driver.page_source.encode('utf-8') soup = BeautifulSoup(data, "lxml") for o in soup.findAll("h1"): test1.append(o.string) for o1 in soup.findAll("span", class_="data"): test2.append(o1.string) for o2 in soup.findAll("div", class_="text2"): test13.append(o2.get_text()) time.sleep(1) nan = float("nan") df = pd.DataFrame({"あああ":test1, "いいい":test2, "ううう":test3}) print(df) driver.quit()
エラー
ValueError: arrays must all be same length
調べたこと
- スクレイピングしたときに、欠損した値があるため(取得できなかった時がある?)列がずれてしまって、データの長さが一致しないことは理解しました
- NaNでもいいので、一発でdataframeにしたいのですが、ググってもわかりませんでした・・・
解決方法を教えていただければ嬉しいです。
宜しくお願いします。
p.s.
test2だけをコメントアウトすると、通常通りスクレイピングできたので、test2にズレがあるのだと思います。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/12 11:59