問題タブ [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.
python - Scrapy Spiders - HTML 以外のリンク (PDF、PPT など) の処理
私は Scrapy と Python を学んでいて、空のプロジェクトから始めました。私は Scrapy LxmlLinkExtractor を使用してリンクを解析していますが、HTML 以外のリンク/ページ (PDfs やその他のドキュメントなど) に遭遇すると、スパイダーは常にスタックします。
質問: これらの URL のみを保存したい場合 (ドキュメントのコンテンツは今のところ必要ありません...)
ドキュメントのあるページの例: http://afcorfmc.org/2009.html
これが私のスパイダーコードです:
scrapy - Scrapy にはそのようなホスト クローラーはありません
このクローラーをベース クローラーとして使用してい ます https://github.com/alecxe/broken-links-checker/blob/master/broken_links_spider.py
404 エラー ドメインをキャッチして保存するために作成されます。少し変更して、エラー 12002 である「そのようなホストはありません」エラーを探すようにしました。
ただし、このコードでは、Scrapy は応答を受信しておらず (応答を返すホストがないため)、Scrapy がそのようなドメインに遭遇すると返されます。
見つかりません: [Errno 11001] getaddrinfo に失敗しました。
この見つからないエラーをキャッチしてドメインを保存するにはどうすればよいですか?
python - 美しいスープはhtmlタグを繰り返します
私はhtmlに次のコードを持っています
一部の結果は正しくフォーマットされていますが、サブセクションのない一部のセクションは個々の要素に分割されています。
各セクションを個別に希望します。つまり、1つのセクションには他のセクションがあるからです。ループを追跡できるように、これらのセクションをループして個別に取得したいと考えています。一部のセクションにはサブセクションがないため、それらをループする必要はありません。
BeautifulSoupでこれを行うより良い方法はありますか? 次の出力が欲しい
python - Scrapy, Crawling Reviews on Tripadvisor: 二重再帰ルールを適用する方法?
これは私のスパイダーがどのように見えるかです:
最初のルールは正常に機能し、ホテルを一覧表示するすべてのページをクロールします。
スパイダーは、各ホテルのレビューの最初のページのみをクロールし、残念ながら、すべてのレビューのページを再帰的にクロールできるようにする 2 番目のルールを無視します。
コールバックと xpath が異なるため、ルールが 1 つしかない場合にスクレイピー ルールを修正する方法はここでは適用されないと思います。
助けてください!
javascript - Scrapy ドロップダウンメニューから選択
このページhttps://www.stickyguide.com/dispensaries/leaf-lab/をスクレイピーを使用してクロールしようとしています。このページから長い間レビューをクロールできません。Ajax や Javascript を扱った経験のある方がいらっしゃいましたら、ご意見をお聞かせください。
1) レビュー用の Xpath を簡単に取得できます。
ただし、ページのレビュー部分は JavaScript によって読み込まれると思います。このページをクロールするたびに、次の Xpath の値を取得しました。
javascriptがロードされる前にscrapyがクロールすることを保証するために使用できる方法があれば? ネットで方法を調べたところ、seleniumパッケージを使えば解決するかもしれませんが、効率的ではないかもしれません。
2) 私が遭遇したもう 1 つの問題は、薬局からのデータのみをクロールしたいということです。レビュー モジュールの横にあるドロップダウン メニューから [表示: 診療所のみ] オプションを選択する必要があります。HTML コードを調べたところ、Ajax オブジェクトであることがわかりました。
オプション「VIEW: Dispensary Only」の内容をリクエストする方法があれば教えてください。私はstackoverflowで多くの方法を試しましたが、まだ解決できません。
前もって感謝します
python - CrawlSpider 派生オブジェクトに属性「状態」がありません
http://doc.scrapy.org/en/0.22/topics/jobs.htmlで説明されているように Spider.state を使用しようとしましたが、エラーが発生しました
CrawlSpider 派生クラスのinit () 関数で使用しようとしています。これが問題でしょうか?
私の目標は、クローラーが最初に開始されたアイソフォーマットの日時文字列に常にクロール開始属性を設定することです。