問題タブ [robobrowser]
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.
python - 歌詞ボットがサーバーに文字列を送信しません
Pythonで歌詞ボットを作成しました。robobrowser を使用して genius.com から歌詞を破棄していますが、歌詞がグループに送信されていません。
python - Unicode のデコード中に Python3 RecursionError が発生する (BeautifulSoup/RoboBrowser の場合)
私は BeautifulSoup と RoboBrowser を使用して Web スクレイピング コンポーネントに取り組んでおり、特に 1 つのケースで奇妙な問題に遭遇しました。問題のページには、正常に動作する他のすべてのケースと同じクロムと構造がすべて含まれていますが、そのメイン データ フィールド (きれいにラベル付けされた div) は改行のない 1 つの巨大な行 (約 3000 文字の日本語テキスト) です。たくさんの BR タグ (テーブルをフォーマットするためにかなり恐ろしい方法で使用しています...) とフォーマット用のいくつかの SPAN タグが散りばめられていますが、本文全体は 1 行です。
それは問題ではないように思えますが、私のスクレーパーはRecursionError: maximum recursion depth exceeded in comparison
、これらの行の数百 (おそらく数千) の同一のペアを吐き出した後、 で終了します。
私はもともと BeautifulSoup のせいにしていて、膨大な数の BR タグが原因だと思っていましたが、実際には Unicode に問題があるようです。これをスローしているコードは次のとおりです。
行の長さかもしれないと思ったので、一度にすべてを行うのではなく、子ごとに DIV ブロックを解析しているのですが、少しも役に立ちませんでした。チャンクがどれほど小さくても、このstr(bsObject)
関数は Unicode パーサーを非常識な狂乱に駆り立てているようです。
プロットを少し厚くするには; ページ ソースのテキスト全体を長い文字列として新しい Python サンドボックスにコピーしたので、Web サイトにログインし続けることなく、それに対してさまざまなコードをテストできました。テキストを vi で実行し、UTF8 として保存するように強制した後でも、Python はすぐにコードのコンパイルを拒否しました (UTF8 以外の文字が含まれていると不平を言いました)。ただし、テキストに改行を挿入して小さなチャンクに分割すると、テキスト自体の1文字を変更または削除していないにもかかわらず、このエラーが表示されなくなり、その時点でスクリプトはコンパイルされ、ページを完全にスクレイピングしました.
ここから先に進む方法がわかりません。私はスクレイピング元のサイトを管理していません。BeautifulSoup がそれに触れる前に、RoboBrowser の応答オブジェクトに改行を強制することを考えました。誰かが別のアプローチを提案できますか?
(残念ながら、私がデータをスクレイピングしているページにリンクすることはできません。これは、ログインが必要であり、個々のデータの永続的な URL を持っていない研究データ サプライヤーであるためです。)
編集:以下に完全なスタックトレースを追加...
python - robobrowserとbeautifulsoupを使用したWebページの解析
私は、robobrowserでフォームを送信した後、ウェブサイトを解析しようとするウェブスクレイピングが初めてです。正しいデータが返されます (実行すると表示できます: print(browser.parsed)) が、解析に問題があります。Web ページのソース コードの関連部分は次のようになります。
私が行った場合
私は得る:
JONES、JOHNの代わりに。
関連データを取得できた唯一の方法は、次のことです。
これにより、テキストに変換して関連情報を検索できる各 'tr' を含む 29 のそれぞれのリストが返されます。
BeautifulSoup オブジェクトの作成も試みました。
しかし、すべてのタグ/IDが失われるため、その中を検索する方法がわかりません。
文字列変数に繰り返し変換して検索するのとは対照的に、「tr」を使用して各要素をループし、ラベルではなく実際のデータを取得する簡単な方法はありますか?
ありがとう
python - Cookie のインポート - Robobrowser - Python
を使用して Cookie をインポートしようとしていrobobrowser
ます。だから私は定義します:
しかし、正しくbrowser
インポートされません:cookie
browser
私のクッキーを1つのクッキーとしてインポートするのではなく、3つの異なるクッキーとしてインポートします...ベースとして、私は使用しました:Robobrowser
Pythonリクエストライブラリを使用してポストリクエストでクッキーを送信する方法は?Requests
ありがとうございました。
python - RoboBrowser フォームの送信
robobrowser を使用して Web サイトでフォーム送信を自動化しようとしていますが、フォームを送信した後、正しい応答が得られず、同じページが表示されます。これが私のコードです