6

スクレイピングしたい約10の奇妙なサイトがあります。それらのいくつかはワードプレスのブログであり、クラスは異なりますが、同じ html 構造に従っています。その他は、フォーラムまたは他の形式のブログです。

私がスクレイピングしたい情報は一般的です - 投稿の内容、タイムスタンプ、作者、タイトル、コメントです。

私の質問は、ドメインごとに 1 つの個別のスパイダーを作成する必要があるかどうかです。そうでない場合、構成ファイルなどからオプションをロードしてスクレイピングできる汎用スパイダーを作成するにはどうすればよいですか?

コマンドライン経由で場所をロードできるファイルからxpath式をロードできると考えましたが、一部のドメインのスクレイピングで正規表現を使用する必要がある場合とそうでない場合があるため、いくつかの問題があるようselect(expression_here).re(regex)です。

4

6 に答える 6

2

スクレイピー スパイダーで、allowed_domains をドメインのリストに設定します。例:

class YourSpider(CrawlSpider):    
   allowed_domains = [ 'domain1.com','domain2.com' ]

それが役に立てば幸い

于 2011-06-11T05:18:19.643 に答える
1

次の XPath 式を使用して、同じことを行います。

  • '/html/head/title/text()'タイトルのために
  • //p[string-length(text()) > 150]/text()投稿内容について。
于 2011-06-03T21:13:54.203 に答える
1

空のallowed_domains属性を使用して、scrapy にオフサイト リクエストをフィルタリングしないように指示できます。ただし、その場合は注意が必要であり、スパイダーから関連するリクエストのみを返す必要があります。

于 2011-12-23T22:38:22.740 に答える
0

特に Python を使用している場合は、BeautifulSoup を使用する必要があります。ページ内の要素を検索し、正規表現を使用してテキストを抽出できます。

于 2011-04-01T01:17:01.963 に答える