python爬虫--scrapyフレームワークのプロジェクト外で爬虫類を実行(スクリプトで爬虫類を実行)


注意:本文はscrapy入門チュートリアルではありません(将来、チュートリアルの白入門レベルを書くかもしれません)
転送ゲート1:python 2.7構文編
転送ゲート2:scrapy公式ドキュメント1.3
転送ドア3:XPathチュートリアル
———————————————————
スクリプトでプロジェクト外で爬虫類を起動する
本稿では、恥ずかしい百科事典のネタを取り出しmysqlデータベースに保存する例として、プロジェクトのソースコードのダウンロード-->GitHub
プロジェクトの実行にインストールするモジュール
->scrapy        
->pymysql
->twisted
->VCForPython 27 pythonパッケージではないWindowsシステムをインストールしてダウンロードする必要があります
PS:pythonインストールモジュール直接用コマンドラインpip installモジュール名
ディレクトリ構造:
spider-master
——Run
————qiushibaike
————qiushibaike
————...........
qiushibaikeフォルダは爬虫類アイテムです
他はくどくど言わないソースに詳しくコメントしました
次は最も主要なソースコードRunだけを貼ります.py         
#coding:utf-8
import threading
#            
from twisted.internet import reactor
from scrapy.crawler import CrawlerRunner
import qiushibaike.qiushibaike.items
from qiushibaike.qiushibaike.spiders.csbk import Csbk
from qiushibaike.qiushibaike.pipelines import QiushibaikePipeline
from scrapy.settings import Settings

#            
#         
#Running spiders outside projects it’s not much different. 
#You have to create a generic Settings object and populate it as needed (See          for the available settings), 
#instead of using the configuration returned by get_project_settings. 
#   
#             。
#                     (              ),        get_project_settings  。
def run_csbk():
	settings = Settings({
		#Spiders can still be referenced by their name if SPIDER_MODULES is set with the modules where Scrapy should look for spiders.
		#Otherwise, passing the spider class as first argument in the CrawlerRunner.
		#  
		#               SPIDER_MODULES    ,Scrapy     。
		#  ,   CrawlerRunner        。
		'SPIDER_MODULES':['qiushibaike.qiushibaike.spiders.csbk'],  

		'ROBOTSTXT_OBEY':True,
		#    
		'DEFAULT_REQUEST_HEADERS':{
		'Referer':'http://www.qiushibaike.com/text/',
	    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'},
		#  pipelines  
		'ITEM_PIPELINES':{
	    'qiushibaike.qiushibaike.pipelines.QiushibaikePipeline': 400,},

	    'CONCURRENT_REQUESTS':1,     #           
	    'DOWNLOAD_DELAY':2			#  2          
	    })
	runner=CrawlerRunner(settings)

	d=runner.crawl('Csbk')
	d.addBoth(lambda _: reactor.stop())
	reactor.run()
	return 0
#         ,     run_csbk()      
def thread_qiushi():
	print("--------------")
	threading.Thread(target=run_csbk())
if __name__ == '__main__':
	thread_qiushi()



ヒント:
一、上記のコードは、プロジェクト外で爬虫類を実行する上での重要なステップにすぎず、爬虫類ファイル(本プロジェクトはcsbk.pyというファイル)がインポートするモジュールパスがRunに対して必要であるなどの詳細もある.py具体的にはソースをダウンロードして自分で注釈を見てください
二、爬虫類の書き方が分からない場合は、文章の冒頭の転送ドアを参考にすることをお勧めします.もちろん、本プロジェクトでは爬虫類の書き方を説明する注釈も少なくありません.
不足があれば指摘してください