Chrome ウェブストアをクロールし、アプリのタイトル、URL、★などの情報を取得したいと考えています。
以下のコードで値を取得することはできたのですが、list 変数に格納されている値が「1文字ずつのリスト」として格納されていました。
list変数の中身 → print(list(itertools.chain.from_iterable(list))) で確認しました
list を print すると単純な多次元リストのように見えます。
python
1from selenium import webdriver 2from selenium.webdriver.chrome.options import Options 3import lxml.html 4import itertools 5 6options = Options() 7options.add_argument("--headless") 8driver = webdriver.Chrome(options=options) 9 10url = "https://chrome.google.com/webstore/category/extensions?hl=ja" 11driver.get(url) 12ps = driver.page_source 13root = lxml.html.fromstring(ps) 14list = root.xpath('//script[@id="cws-model-data"]/text()') 15
1文字ずつの形で値が格納されているため、list[0][1] と指定すると「"」が、list[0][2] と指定する「I」が返ってきます。
やりたいこととしては、list[0] と指定したら「initialmodeldata」の文字が返ってきたり、list[0][7][2]と指定したら「おすすめ」の文字が返ってきたりなど、指定したリストの位置に応じた値を返したいと考えています。
そもそものやり方が悪手であれば、ご指摘いただけると幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/03 15:10