前提・実現したいこと
このWikipediaページから受賞理由のカラムの内容を(全年度)pythonのbs4で抽出したいです。
発生している問題・エラーメッセージ
NotImplementedError Traceback (most recent call last) <ipython-input-27-9c2fd27fc558> in <module>() ----> 1 table = soup.select('tbody > tr > td:nth-child(3)') 2 3 # table.wikitable:nth-child(5) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(3) 4 print(table) 5 2 frames /usr/local/lib/python3.6/dist-packages/bs4/element.py in select(self, selector, _candidate_generator, limit) 1526 else: 1527 raise NotImplementedError( -> 1528 'Only the following pseudo-classes are implemented: nth-of-type.') 1529 1530 elif token == '*': NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.
該当のソースコード
import requests, bs4 url = 'https://ja.wikipedia.org/wiki/%E3%82%A4%E3%82%B0%E3%83%8E%E3%83%BC%E3%83%99%E3%83%AB%E8%B3%9E%E5%8F%97%E8%B3%9E%E8%80%85%E3%81%AE%E4%B8%80%E8%A6%A7' res= requests.get(url) # print(res) soup = bs4.BeautifulSoup(res.text,'html.parser') # print(soup) table = soup.select('tbody > tr > td:nth-child(3)')
試したこと
Firefoxの検証ツールにて該当のカラムは
'/html/body/div[3]/div[3]/div[5]/div[1]/table[1]/tbody/tr[3]/td[2]'
にあることがわかったのですが、
そのまま
table = soup.select('/html/body/div[3]/div[3]/div[5]/div[1]/table[1]/tbody/tr[3]/td[2]')
としても
Unsupported or invalid CSS selector: "/html/body/div[3]/div[3]/div[5]/div[1]/table[1]/tbody/tr[3]/td[2]"
とエラーが出てしまいます。(これがxpathであることは今調べたらわかったのですが、)
どのようにcss_pathを入力したら、該当の全年度の分の受賞理由内容を抽出できますか?
補足情報(FW/ツールのバージョンなど)
Colaboratoryを使って抽出しようとしてます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/17 08:47
退会済みユーザー
2020/11/17 09:16