問題タブ [scrapy-spider]

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 投票する
1 に答える
1417 参照

python - URLとともに追加の値をscrapy Spiderに渡します

(id,url) という形式のタプルのリストがあります。URL のリストから製品をクロールする必要があります。これらの製品がクロールされたら、それらの製品を ID でデータベースに保存する必要があります。

問題は、id を parse 関数に渡して、クロールされたアイテムを id の下に保存できるようにする方法を理解できないことです。

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

scrapy - 限られた数のページをクロールする

フォーラム用のスパイダーを書いています。セクションのいくつかのページを再帰的にクロールしようとしています。そこで、以下のルールを設定しました。

スパイダーが限られた数のページをクロールできるように、ページ制限を設定することは可能ですか? たとえば、1 ページから 8 ページまでクロールします。

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

python - JavaScript インタラクションを必要とするページのスクレイピング

Scrapy でhttps://a836-propertyportal.nyc.gov/Default.aspxをスクレイピングしようとしています。FormRequest の使用に問題があります。具体的には、Scrapy にブロックとロットのフォームを埋める方法を伝え、その後ページの応答を取得する方法がわかりません。ここにあるScrapy WebサイトのFormRequestの例に従ってみました( http://doc.scrapy.org/en/latest/topics/request-response.html#using-formrequest-from-response-to-simulate-a-user -login )、しかし、「検索」ボタンを適切にクリックすることが引き続き困難でした。

送信されたページからデータを抽出できるように、何か提案をいただければ幸いです。SO の一部の投稿者は、Scrapy は JS イベントをうまく処理できないため、代わりに CasperJS のような別のライブラリを使用することを提案しました。

更新:フォームを送信し、その後の情報を取得できる Java/Python/JS ライブラリを教えていただければ幸いです。

更新されたコード (Pawel のコメントに続く):私のコードは次の場所にあります。

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

python - スクレイピーでスクレイピング

私はスクレイピーでもう少し深く掘り下げようとしていますが、スクレイピングしているもののタイトルしか取得できず、詳細は取得できません。これが私がこれまでに持っているコードです:

結果を表示するための価格と数量を取得できません。各カードには、それぞれ独自の価格と数量を持つ複数のベンダーがあります。そこに問題があると思います。どんな助けでも大歓迎です。

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

python - python Scrapy CrawlSpider:ログイン後にルールが適用されず、最初のページのみがクロールされました

私は C/C++ プログラマーであり、プロットとテキスト処理の作成において Python の経験が限られています。私は現在、個人データ分析プロジェクトに取り組んでおり、Scrapy を使用してフォーラム内のすべてのスレッドとユーザー情報をクロールしています。

最初にログインすることを目的とした初期コードをまとめました。次に、サブフォーラムのインデックス作成ページから開始し、次のことを行います。

1) 「トピック」を含むすべてのスレッド リンクを抽出する

2) 今のところページをファイルに保存します (プロセス全体が機能したらアイテム情報を抽出します)

3) タグ class=next を持つ次のページ リンクを見つけ、次のページに移動して 1) と 2) を繰り返します。

スレッドごとに、すべての返信投稿を含むすべてのページを確認する必要があることはわかっていますが、現在のコードが正しく機能するようになったら、それを行う予定です。

ただし、私の現在のコードは、開始 URL のすべてのスレッドのみを抽出してから停止します。数時間検索しましたが、これに対する解決策は見つかりませんでした。だから私はここで私の質問をし、Scrapy の経験を持つ誰かがここで私を助けてくれることを願っています. 出力などの他の情報が必要な場合は、お知らせください。ありがとう!

Paul の返信については、コードを更新しました。リンク エクストラクタに問題があるため、修正する必要があります。それ以外は、ルールは正常に機能するようになりました。ポールの助けに再び感謝します。

これが私の現在のスパイダーコードです:

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

api - クロールされたサイトの API?

クロールされたリンクを受け取ることができる API を提供している Google や他の会社はありますか? リンクを .txt 拡張子でフィルタリングし、場合によっては別の追加拡張子のみでフィルタリングしたいと考えています。

そうでない場合、ページをクロール/インデックス登録して、選択した拡張機能のみに絞り込むにはどうすればよいですか? また、法廷闘争に参加したくないので、robots.txt に準拠する必要がありますか? また、これらのファイルの内容をクロールするだけでも大規模なデータベースが必要になるでしょうか? DMOZ を出発点として、(選択した拡張子を使用して) ランダムなリンクをクロールしたいと考えています。