インクリメンタルクロールサンシャインホットラインネットワーク

-インクリメンタル
-コンセプト:更新されたデータのためのサイトを監視します。
-コアメカニズム:重複排除。Redisのは、重複排除を達成するために設定されている

: -抗クライミングメカニズムまとめ
ロボット-
- UAが偽装
-コード
-エージェント
-クッキー
-動的変更リクエストパラメータ
- jsの暗号化を
混乱JS -
-画像の遅延ロード
-動的なデータをキャプチャ
- seleium:EVADE検出を

プロジェクト名scrapyのstartprojectの作成1.

2、ワームを作成するクロールZJS www.xxx.com -t genspider scrapy

3、プロファイルUA迷彩、ログレベル、ロボット

4、映画名の内部解決のバグは、ページのURL、説明の詳細

内部5、アイテムを構成

6、昆虫アイテムを導入

。7、入力データがパイプパイプラインの内側に配置されている

8、オープンプロファイル管

9は、昆虫の実装はZJS Scrapyクロール

のRedis-cli.exe:10は、Redisのクライアントを起動する

すべてのキーを照会する:キー*

クエリの長さ: llen moiveData

クエリデータ:smembers movie_detail_urls

空:flushall

zjs.py

# - * -コーディング:UTF-8 - * - 
インポートscrapy
scrapy.linkextractorsからLinkExtractorをインポート
CrawlSpiderをインポートscrapy.spidersから、ルール
のRedisからはRedisのインポート
zjsPro1.itemsインポートZjspro1Itemから


クラスZjsSpider(CrawlSpider):
CONN = Redisの(ホスト= '127.0.0.1'、ポート= 6379)
NAME = 'zjs'
#allowed_domains = [ 'www.xxx.com']
start_urls = [ 'https://www.4567tv.tv/index.php/vod/show/class /%E7%88%B1%E6%83%85/id/1.html ']

ルール=(
規則(LinkExtractor(許可= R' /ページ/ \ D + \。HTML ')、コールバック=' parse_item」、フォロー= False)が、


デフparse_item(自己、応答):
解析电影名称和详情页URL:
= response.xpath li_list( '/ HTML /本体/ DIV / DIV / DIV / DIV / DIV [2] / UL /リー[1]')
のLiためli_listで:
名= li.xpath(」./ DIV / A /タイトル@ ')。extract_first()
detail_url =' https://www.4567kan.com/ '+ li.xpath(' ./ DIV / A / @ HREF「)。extract_first()
項目= Zjspro1Item()
項目[ '名前は']名前は=
最高記録の映画の詳細ページ登ることができるURLの#
#exは== 0:挿入データに成功:データ挿入は、ex == 1失敗した
元= self.conn.sadd( "movie_detail_urls"、 detail_urlを
IF == EX 1:
印刷( '最新の更新プログラムは、データをキャプチャ!')
収量scrapy.Request(detail_url、コールバック= self.parse_detail、メタ= { '項目':項目})
他:
印刷(「いいえデータの更新!!!」)

:DEF(自己、応答)parse_detail
#解析描述
DESC = response.xpath( '/ HTML /本体/ DIV [1] / DIV / DIV / DIV / DIV [2] / P [5] /スパン[3] /テキスト() ')。extract_first()
項目= response.meta ['アイテム']
項目[' DESC '] = DESCの
収率項目

おすすめ

転載: www.cnblogs.com/zhang-da/p/12444118.html