問題タブ [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.

0 投票する
2 に答える
7341 参照

python - スクレイピーの XmlFeedSpider を使用して sitemap.xml ファイルを解析する方法は?

私はスクレイピーを使用してファイルを解析しようとしています。サイトマップ ファイルは次のようなもので、ノードsitemap.xmlがはるかに多くなっています。url

関連するスクレイピーのドキュメントを見て、次のスニペットを書いて、正しい方法を行っているかどうかを確認しました (そうではないようです ^^):

しかし、スパイダーを実行すると、次のエラーが発生します。

「デフォルト」の名前空間 ( http://www.sitemaps.org/schemas/sitemap/0.9 ) を適切に定義していないと思いますが、これを行う方法が見つかりません。

urlノードを反復処理し、その子から必要な情報を抽出できる正しい方法は何ですか?


答え:

残念ながら、私は を使用できませんでしたXMLFeedSpider(XML を で解析する方法であるはずですscrapy) が、simplebias の回答のおかげで、この「昔ながらの方法」を実現する方法を見つけることができました。次のコードを思いつきました(今回はうまくいきます!):

0 投票する
3 に答える
15922 参照

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-8sys.getdefaultencodingに設定した Python シェルで上記をテストしていUTF-8ます。UTF-8XPath セレクターからのデータが文字セットを使用して MySQL データベースに書き込まれる Django アプリケーションを使用すると、同じ動作が見られます。

ここで明らかなことを見落としていますか?手がかりや助けをいただければ幸いです。

0 投票する
2 に答える
9726 参照

python - スクレイピーのリダイレクトリンクに従ってください

どうすればこれを設定できますか? handle_httpstatus_list = [301, 302, 303] と書きましたが、scrapy は新しいリンクをたどらず、ページの空のファイルを保存し始めたところです。

PS 英語は私の母国語ではありません。すみません。

0 投票する
2 に答える
11588 参照

python - Scrapy - ページを解析してアイテムを抽出し、アイテムの URL コンテンツをたどって保存します

これをスクレイピーで行う方法について質問があります。アイテムのリスト ページをクロールするスパイダーがあります。アイテムを含むリスティング ページが見つかるたびに、アイテム データを抽出してアイテムを生成するために呼び出される parse_item() コールバックがあります。これまでのところ、すべてがうまく機能しています。

ただし、各アイテムには、他のデータの中でも、そのアイテムの詳細を含む URL があります。その URL をたどり、別のアイテム フィールド (url_contents) に、そのアイテムの URL のフェッチされたコンテンツを格納したいと考えています。

2 つのリンク (リスト リンクと 1 つの特定のアイテム リンク) は異なるタイミングで呼び出され、コールバックが異なる方法でたどられるため、それを達成するためのコードを整理する方法がわかりませんが、同じアイテム処理でそれらを関連付ける必要があります。 .

これまでの私のコードは次のようになります。

0 投票する
1 に答える
67206 参照

python - 認証済み (ログイン済み) ユーザーセッションで Scrapy を使用する

Scrapy docsには、Scrapy で認証されたセッションを使用する方法を説明する次の例があります。

私はそれを機能させました、そしてそれは問題ありません。しかし、私の質問はcontinue scraping with authenticated session次のとおりです。最後の行のコメントで彼らが言うように、あなたは何をしなければなりませんか?

0 投票する
4 に答える
37724 参照

python - Scrapy での認証済みセッションでのクロール

以前の質問では、より一般的な回答から解決策を導き出せることを期待して、自分の問題 (Scrapy で認証されたセッションでスクレイピングする) についてあまり具体的ではありませんでした。という言葉を使うべきだったのかもしれませんcrawling

だから、これまでの私のコードは次のとおりです。

ご覧のとおり、最初にアクセスするページはログイン ページです。(関数内で) まだ認証されていない場合は、ログイン フォームに投稿するparseカスタム関数を呼び出します。login次に、認証されたら、クロールを続行します

問題は、parseログインするためにオーバーライドしようとした関数が、それ以上のページをスクレイピングするために必要な呼び出しを行わなくなったことです (私は推測しています)。また、作成したアイテムを保存する方法がわかりません。

誰かが前にこのようなことをしましたか?(を使用して認証してからクロールしますCrawlSpider)助けていただければ幸いです。

0 投票する
2 に答える
8431 参照

python - Scrapyに代わるRuby?

ScrapyがPythonに対して行うのと同様のことを達成するのに役立つRubyベースのツールは何ですか? http://doc.scrapy.org/intro/overview.html

0 投票する
2 に答える
1110 参照

linux - スクリプトを実行する cron ジョブをデバッグするにはどうすればよいですか?

次のようなcronジョブscrape.shがあります。

実行すると、ファイルの怒りが作成され、syslog から判断すると、ルートとして実行されるため、権限は問題になりません。

実行scrape.shすると、期待どおりに実行され、foosite.xmlファイルが../feedsディレクトリに配置されます。ディレクトリは存在し、cron ジョブの開始時に空になります。この問題を解決するにはどうすればよいですか?

0 投票する
3 に答える
2390 参照

python - GoogleAppEngineでブラウザをシミュレートする

JSでいっぱいのウェブサイトをスクレイプするために、GoogleAppEngine内でセレンまたは風車を使用したいと思います。私は風車がpythonとjavascriptで書かれていることを知っています。

これは可能ですか?もしそうなら、どのようにライブラリを挿入しますか?
そうでない場合は、その理由を説明し、代替案を提供していただけますか?

ありがとう。

アップデート

もう少し検索してみると、scrapyは純粋なPythonであることがわかりました。
それは機能しますか?JavaScriptを処理しますか?

0 投票する
1 に答える
1015 参照

python - スクレイピー 大きな XML フィード リンクをたどる

300 Megs の XML フィードをループするために itertag を指定したスクレイピー XMLFeedSpider を使用しています。

その大きなフィードの各エントリをアイテムとして保存するだけでなく、各エントリにはさらにクロールするリンクがいくつかあります。今回は HTML ページへのリンクです。

CrawlerSpider を使用して HTML ページがクロールされることを理解しているので、そのようなスパイダーを使用して大きな XML フィードからリンクをたどる方法を見つけようとしています。

みんなありがとう