ウェブページから一部のテキストを削り取ろうとしています。私のウェブページには、表示されている単語のリストがあります。 「+その他」をクリックすると表示されるものもあれば、表示されるものもあります。一度クリックすると、単語のリストは常に同じです(同じ単語の同じ単語)。しかし、一部は太字で削除されています。基本的にデータベースの各項目にはいくつかの機能があります。私は何をしたいのですか:それぞれの項目について、どの機能が利用可能かどうかを教えてください。私の問題は、「+その他」ボタンを克服することです。隠されたテキストをウェブページから掻き出す方法は?
私のスクリプトは、表示されている単語に対してのみうまく動作し、「+その他」によって隠されている単語に対してはうまく動作しません。私がしようとしているのは、ノード "del"の下に続くすべての単語を集めることです。私は当初、要素を検査クロムに表示されるlxmlのを通じて、ウェブページがロードされているだろうと思って、私はそれに応じて自分のコードを書いた:
from lxml import html
tree = html.fromstring(br.open(current_url).get_data())
mydata={}
if len(tree.xpath('//del[text()='some text']')) > 0:
mydata['some text'] = 'text is deleted from the web page!'
else:
mydata['some text'] = 'text is not deleted'
私が収集できるか、このコードを実行するたびに、実際にデータの一部でありますウェブページには表示されますが、「+その他」をクリックした後に表示される単語の完全なリストは表示されません。
私はセレンを試していましたが、私が理解する限り、それは解析するためのものではなく、ウェブページとやり取りすることを意図しています。しかし、これを実行した場合:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.mywebpage.co.uk')
a = driver.find_element_by_xpath('//del[text()="some text"]')
私はこの要素またはエラーを取得します。私は私が行うことができるように、空のリストを取得したいと思います:
mydata = {}
if len(driver.find_element_by_xpath('//del[text()="some text"]')) > 0:
mydata['some text'] = 'text is deleted from the web page!'
else:
mydata['some text'] = 'text is not deleted'
やスクリプトで撮影し、これらの「隠れた」要素を取得するための別の方法を見つけます。
私の質問は誰もこのタイプの問題を抱えていますか?彼らはどのようにそれを整理しましたか?
こんにちは@RemcoW:
(要素の)で。答えをありがとう。はい、私のウェブページには、表示されている単語のリストがあります。 「+その他」をクリックすると表示されるものもあれば、表示されるものもあります。一度クリックすると、単語のリストは常に同じです(同じ単語の同じ単語)。しかし、一部は太字で削除されています。基本的にデータベースの各項目にはいくつかの機能があります。私は何をしたいのですか:それぞれの項目について、どの機能が利用可能かどうかを教えてください。私の問題は、「+その他」ボタンを克服することです。 – user0978189
私のスクリプトは、表示されている単語に対してのみうまく動作し、「+その他」によって隠されている単語に対しては機能しません。あなたのコードを試してみましょう。セレンで私の恐怖は、それが非常に遅く見えるということです... – user0978189
それは単にウェブページを開き、私の辞書のデータを保存しません。; – user0978189