問題タブ [domcrawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Web Scrape Symfony2 - 不可能な挑戦 - クローラー解析
(編集:私はまだこの問題を解決する方法を見つけていません。$crawler
オブジェクトを扱うのはばかげているようです。特定のテキストを解析したいだけです。それ<td>
はどれほど難しいですか?serialize()
クローラーオブジェクト全体を作成することもできません。ウェブページのソースコードを文字列に変換するか、そうでなければ私はその文字列を難しい方法で解析することができました.助けてください.私は問題をうまく説明したと思います, 以下.)
以下では、Symfony、Goutte、および DomCrawler を使用して Web ページをスクレイピングしています。私は成功しなかった他の質問を通してそれを理解しようとしてきましたが、今はすべてのコードを投稿して、これをできるだけ簡単にするつもりです.
ページを取得して、探しているデータの最初のビットを取得できます。1 つ目は、javascript から出力された URL であり、and の付いたa
タグ内にonclick
あり、長い文字列です。そのため、a を使用しpreg_match
てふるいにかけ、必要なものを正確に取得します。
次に必要なデータは、<td>
タグ内のテキストです。問題は、この Web ページには 10 ~ 20 の異なる<table>
タグがあり、id=""
またはclass=""
タグがないため、分離するのが難しいということです。だから私がやろうとしているのは、「Event Title」という単語を検索してから、次の兄弟<td>
タグに移動し、その innerHtml を抽出することです。これが実際のタイトルになります。
$crawler
問題は、2 番目の部分では、オブジェクトを正しく解析できないように見えることです。オブジェクトのバージョンでpreg_match
以前に行ったことがわかりませんが、下半分については適切に解析できないようです。serialize()
$crawler
Mypreg_match
は空の配列を返します。$crawler
オブジェクトは多くのノードで構成されているため、オブジェクトの検索に問題があると思います。私はそれをすべてhtmlに変換してからaに変換しようとしましたが、うまくいきませんpreg_match
。いくつかのprint_r
ステートメントを実行しましたが、Web ページ全体が返されるだけです。
クローラー オブジェクトの一部の html の例を次に示します。
そして、目標は、ページ/オブジェクト全体を解析し、「母なる自然の厳しい顔」$crawler
というタイトルを取得することです。
これが可能であることはわかっていますが、誰かが提供したい唯一の答えは、この時点で約 1000 回読んだ domcrawler ページへのリンクです。助けてください。
php - の属性をスクレイプできません兄弟要素から
Symfony2、Goutte、および DomCrawler を使用してデータをスクレイピングしようとしています。内の属性の値を取得する必要があるというトリッキーな状況があります<td>
。
作業セクション:
さて、それは次のとおりです。
そして、セレクターを変更しようとしています
<input>
属性 value="" を取得するために にアクセスできるように、 をトラバースし続ける方法はありますか?
php - Goutte Crawler でデータを抽出するには?
このコードは、コンテンツに href を返しました。今度は、この href からコンテンツを抽出してビューに送信したいと思います。抽出する必要がある div に名前を付けます。
symfony - Domcrawler() では Guzzle レスポンスを使用できません
サイトからコンテンツをスクレイピングしようとしています。最終的に Cookie が必要であることがわかったので、guzzle Cookie プラグインで解決しました。var_dump を実行してもコンテンツを取得できないため、奇妙ですが、「echo」を実行するとページが表示され、データを取得する動的データ呼び出しがあると思われます。私はガズルでAPIにかなり慣れていますが、これを扱うべきかどうかわかりませんか?、ありがとう
domcrawler を使用すると、エラーが発生します。
コード -
エラー
php - 適切な XPath 構文
前の兄弟の属性にアクセスしようとしていますが、難しいことがわかりました。
つまり、基本的に、私がスクレイピングしようとしている Web ページはひどいものであり、アンカー タグは、href の代わりにくだらない onclick を使用しています。ばか、私は知っています。私は最初に onclick を含むアンカータグを見つけようとしていますwindow.open('servletLinkJunkHere...')
。次に、タグである前の兄弟に移動し、そこから属性img
を抽出します。src
そして、これが私が使用しようとしているxpathです:
これを達成する方法についてのアイデアはありますか? 私はそれが可能であることを知っています.xpathクエリに完全に精通しているわけではありません. また、xpath の隅々まで学習するための優れたリソースはありますか? ありがとう!
編集:これは私が持っているものですが、空の配列以外は何も返していないようです。
symfony - その中の他のいくつかの要素を除外して、要素からテキストを取得する方法
私はdomCrawler
symfonyフレームワークで使用しています。それを使ってhtmlからコンテンツをクロールしました。ここで、ID を持つ要素内のテキストを取得する必要があります。以下のコードを使用してテキストを取得できます。
element( #idOfTheElement
) には、いくつかのスパン、ボタンなど (いくつかのクラスを持つもの) が含まれています。私はそれらの中の内容を望んでいません。その中の他のいくつかの要素を除外して、要素からテキストを取得する方法。
注:取得したいテキストには、要素 #idOfTheElement 以外のラッパーはありません
Html は次のようになります。
php - Symfony2 DomCrawler または Goutte のファイル サイズ制限を変更する
Symfony2 DomCrawlerのラッパーであるGoutte v2.0.4を使用しています。私はhtmlファイルをローカルに保存しています。それらのいくつかは 10MB 未満です。これらのファイルを正常にクロールしました。
その他のファイルは 30MB を超えています。これらはクロールされていません。これは、ファイル サイズの問題である可能性があります。すべてのファイルのフォーマットは似ています。では、何が問題なのですか?大きなサイズのファイルをクロールする方法は?