ご覧の構文エラーは、あなたが引用符にXPath文字列を同封していないので、それを修正です:
winner = tree.xpath('//*[@id="eventView0"]/div[3]/table/tbody/tr[1]/td[7]')
実際問題はテーブルの内容を動的に形成されていることである経由ブラウザで実行されるJavaScript。あなたにできることは、JSONオブジェクト内の所望のデータを持っているscript
タグを解析JSON文字列を抽出し、json.loads()
経由でPythonのデータ構造にロードすることです:
import json
import re
from lxml import html
import requests
page = requests.get('https://www.pathofexile.com/forum/view-thread/1703834')
tree = html.fromstring(page.content)
script = tree.xpath('//script[contains(., "var json")]/text()')[0]
obj_string = re.search(r"var json = (\{.*?\}),$", script, re.MULTILINE).group(1)
obj = json.loads(obj_string)
# print entries
entries = obj['ladder']['entries']
for entry in entries:
print(entry['account']['name'])
プリントだけの証拠として(アカウント名それは働いています):
Havoc6
Steelmage
Olecgolec
...
Anafobia
nokieka2
HoGji
具体的にどのような遭遇しているエラーですか?言い換えれば、あなたの期待している結果は何ですか?その結果、あなたは代わりに何を得ていますか? – rdgd
私が得意なのは、 winner = tree.xpath(// * @ id = "eventView0"]/div [3]/table/tbody/tr [1]/td [7]) ^ SyntaxError:構文が正しくありません しかし、私は問題について正しく行っているかどうかもわかりません。 –