まず、プロジェクトのディレクトリ構造:
コードは以下の通りであります:
#- * -コーディング:UTF-8 - * - #あなたの掻き取りのアイテムはこちらモデルを定義 #の #はでドキュメントを参照してください: #https://doc.scrapy.org/en/latest/topics/items.html 輸入scrapyの クラスJob58CityItem(scrapy.Item): #は、のようなここにあなたの項目のためのフィールドを定義します 。#名= scrapy.Field() JOB_NAME = scrapy.Field() お金 = scrapy.Field() job_wel = scrapy.Field() 会社 = scrapy。フィールド() position_type = scrapy.Field() xueli =scrapy.Field() jingyan = scrapy.Field() アドレス = scrapy.Field()
#- * -コーディング:UTF-8 - - * 輸入scrapy から ..itemsはインポートJob58CityItemの クラス:JobsSpider(scrapy.Spider) 名 = ' 仕事' allowed_domains = [ ' 58.com ' ] #配置起始页URLは =オフセットを1 URL = " https://cd.58.com/job/pn{0}/ " start_urlsの = [url.format(STR(オフセット))] #解析HTML内容 DEF (自己、応答)を解析: のために、各中 response.xpath(" // UL /李[ID = 'list_con' @] " ): 項目 = Job58CityItem() アイテム[ ' JOB_NAME ' ] = each.xpath(" .//スパン[クラス@ = '名前'] /テキスト()" ).extract()[0] money_list = each.xpath(" .// P [クラス@ = 'job_salary'] /テキスト()" ).extract() お金 = " 未知" 場合(money_list)でlen> 0 : お金 = money_list [0] の項目[ ' お金'] =お金 スパン = each.xpath(" .//div[@class='job_welのclearfix '] /スパン" ) 項目[ ' job_wel ' ] = [] のための I におけるスパン: 項目[ ' job_wel ' ] .append(i.xpath (" ./text()" ).extract()[0]) のアイテム[ ' 会社' ] = each.xpath(" .//のdiv [@クラス= 'COMP_NAME'] / A /テキスト()" )。抽出()[0] アイテム[ ' position_type '] = each.xpath(" .//スパン[クラス@ = 'ケイト'] /テキスト()" ).extract()[0] アイテム[ ' xueli ' ] = each.xpath(" .//span[@class='xueli '] /テキスト()" ).extract()[0] アイテム[ ' jingyan ' ] = each.xpath(" .//スパン[@クラス= 'jingyan'] /テキスト()" ).extract()[0] 項目[ ' アドレス' ] = each.xpath(" //スパン[@クラス= 'アドレス'] /テキスト()" ).extract()[0] 降伏アイテム であれば、自己。<100オフセット: self.offset+ = 1つの 収率 scrapy.Request(" https://cd.58.com/job/pn{0}/ " .format(STR(self.offset))、コールバック= self.parse)
scrapyの輸入CMDLINE 場合 __name__ == ' __main__ ' : cmdline.execute(" scrapyのクロールジョブ" .split())
データ: