問題タブ [scrapy]
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 - スクレイピーの XmlFeedSpider を使用して sitemap.xml ファイルを解析する方法は?
私はスクレイピーを使用してファイルを解析しようとしています。サイトマップ ファイルは次のようなもので、ノードsitemap.xml
がはるかに多くなっています。url
関連するスクレイピーのドキュメントを見て、次のスニペットを書いて、正しい方法を行っているかどうかを確認しました (そうではないようです ^^):
しかし、スパイダーを実行すると、次のエラーが発生します。
「デフォルト」の名前空間 ( http://www.sitemaps.org/schemas/sitemap/0.9 ) を適切に定義していないと思いますが、これを行う方法が見つかりません。
url
ノードを反復処理し、その子から必要な情報を抽出できる正しい方法は何ですか?
答え:
残念ながら、私は を使用できませんでしたXMLFeedSpider
(XML を で解析する方法であるはずですscrapy
) が、simplebias の回答のおかげで、この「昔ながらの方法」を実現する方法を見つけることができました。次のコードを思いつきました(今回はうまくいきます!):
python - Scrapy XPath セレクターテキストでの Unicode および UTF-8 エンコーディングの問題
Scrapy と Python (Django プロジェクトの一部として) を使用して、ドイツ語のコンテンツを含むサイトをスクレイピングしています。Scrapylibxml2
セレクターのバックエンドとしてインストールしました。
'Hüftsitz'
セレクターを介して単語 (サイトでの表示方法)を抽出すると、次のようになります: u'H\ufffd\ufffdftsitz'
(Scrapy XPath セレクターは Unicode 文字列を返します)。
これを にエンコードするUTF-8
と、次のようになります'H\xef\xbf\xbd\xef\xbf\xbdftsitz'
。そして、それを印刷すると、'H??ftsitz'
どちらが正しくないかがわかります。なぜこれが起こっているのか疑問に思っています。
character-set
サイトの は に設定されていますUTF-8
。sys.getdefaultencoding
に設定した Python シェルで上記をテストしていUTF-8
ます。UTF-8
XPath セレクターからのデータが文字セットを使用して MySQL データベースに書き込まれる Django アプリケーションを使用すると、同じ動作が見られます。
ここで明らかなことを見落としていますか?手がかりや助けをいただければ幸いです。
python - スクレイピーのリダイレクトリンクに従ってください
どうすればこれを設定できますか? handle_httpstatus_list = [301, 302, 303] と書きましたが、scrapy は新しいリンクをたどらず、ページの空のファイルを保存し始めたところです。
PS 英語は私の母国語ではありません。すみません。
python - Scrapy - ページを解析してアイテムを抽出し、アイテムの URL コンテンツをたどって保存します
これをスクレイピーで行う方法について質問があります。アイテムのリスト ページをクロールするスパイダーがあります。アイテムを含むリスティング ページが見つかるたびに、アイテム データを抽出してアイテムを生成するために呼び出される parse_item() コールバックがあります。これまでのところ、すべてがうまく機能しています。
ただし、各アイテムには、他のデータの中でも、そのアイテムの詳細を含む URL があります。その URL をたどり、別のアイテム フィールド (url_contents) に、そのアイテムの URL のフェッチされたコンテンツを格納したいと考えています。
2 つのリンク (リスト リンクと 1 つの特定のアイテム リンク) は異なるタイミングで呼び出され、コールバックが異なる方法でたどられるため、それを達成するためのコードを整理する方法がわかりませんが、同じアイテム処理でそれらを関連付ける必要があります。 .
これまでの私のコードは次のようになります。
python - 認証済み (ログイン済み) ユーザーセッションで Scrapy を使用する
Scrapy docsには、Scrapy で認証されたセッションを使用する方法を説明する次の例があります。
私はそれを機能させました、そしてそれは問題ありません。しかし、私の質問はcontinue scraping with authenticated session
次のとおりです。最後の行のコメントで彼らが言うように、あなたは何をしなければなりませんか?
python - Scrapy での認証済みセッションでのクロール
以前の質問では、より一般的な回答から解決策を導き出せることを期待して、自分の問題 (Scrapy で認証されたセッションでスクレイピングする) についてあまり具体的ではありませんでした。という言葉を使うべきだったのかもしれませんcrawling
。
だから、これまでの私のコードは次のとおりです。
ご覧のとおり、最初にアクセスするページはログイン ページです。(関数内で) まだ認証されていない場合は、ログイン フォームに投稿するparse
カスタム関数を呼び出します。login
次に、認証されたら、クロールを続行します。
問題は、parse
ログインするためにオーバーライドしようとした関数が、それ以上のページをスクレイピングするために必要な呼び出しを行わなくなったことです (私は推測しています)。また、作成したアイテムを保存する方法がわかりません。
誰かが前にこのようなことをしましたか?(を使用して認証してからクロールしますCrawlSpider
)助けていただければ幸いです。
python - Scrapyに代わるRuby?
ScrapyがPythonに対して行うのと同様のことを達成するのに役立つRubyベースのツールは何ですか? http://doc.scrapy.org/intro/overview.html
linux - スクリプトを実行する cron ジョブをデバッグするにはどうすればよいですか?
次のようなcronジョブscrape.sh
があります。
実行すると、ファイルの怒りが作成され、syslog から判断すると、ルートとして実行されるため、権限は問題になりません。
実行scrape.sh
すると、期待どおりに実行され、foosite.xml
ファイルが../feeds
ディレクトリに配置されます。ディレクトリは存在し、cron ジョブの開始時に空になります。この問題を解決するにはどうすればよいですか?
python - GoogleAppEngineでブラウザをシミュレートする
JSでいっぱいのウェブサイトをスクレイプするために、GoogleAppEngine内でセレンまたは風車を使用したいと思います。私は風車がpythonとjavascriptで書かれていることを知っています。
これは可能ですか?もしそうなら、どのようにライブラリを挿入しますか?
そうでない場合は、その理由を説明し、代替案を提供していただけますか?
ありがとう。
アップデート
もう少し検索してみると、scrapyは純粋なPythonであることがわかりました。
それは機能しますか?JavaScriptを処理しますか?
python - スクレイピー 大きな XML フィード リンクをたどる
300 Megs の XML フィードをループするために itertag を指定したスクレイピー XMLFeedSpider を使用しています。
その大きなフィードの各エントリをアイテムとして保存するだけでなく、各エントリにはさらにクロールするリンクがいくつかあります。今回は HTML ページへのリンクです。
CrawlerSpider を使用して HTML ページがクロールされることを理解しているので、そのようなスパイダーを使用して大きな XML フィードからリンクをたどる方法を見つけようとしています。
みんなありがとう