在py文件中开启scrapy爬虫
前言
使用scrapy框架编写爬虫时,开启爬虫需要在终端使用命令来执行,且无法进行断点调试debug,所以需要另外编写一个py文件,来运行调试这个scrapy爬虫项目。
一、在py文件中开启爬虫
一般运行scrapy的命令是:scrapy crawl 项目名
这里不再需要使用这个命令,而是另外创建一个用于运行scrapy的py文件。

- 在项目根目录下创建main.py文件
- 在main.py文件内写入如下代码
from scrapy import cmdline
cmdline.execute("scrapy crawl douban".split())		#使用需要运行的爬虫项目名
此时,直接运行这个py文件,就可以执行对应的爬虫了。
二、可传入起始url
上面的方法只适用于开启已编写好的爬虫,但对于非分布式的爬虫,start_urls会固定下来。
而下面的方法可给爬虫项目传入不同的start_urls。

如上,在.cfg文件的相对路径下创建一个py文件,在内部写入执行代码。
代码如下:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from Amazon.spiders import amazon
import os
def StartSpider(url):
    os.environ['SCRAPY_SETTINGS_MODULE'] = 'Amazon.settings'
    scrapy_settings = get_project_settings()
    scrapy_settings.set(
        'ITEM_PIPELINES',
        {'Amazon.pipelines.AmazonJsonPipeline': 300,
       'Amazon.pipelines.AmazonExcelPipeline': 400,},
    )
    process = CrawlerProcess(scrapy_settings)
    start_urls = [url]
    process.crawl(amazon.AmazonSpider,start_urls=start_urls)  #开启指定的爬虫
    process.start()
start_url = 'https://xxx.com'
StartSpider(start_url)
- 导入对应的包
- ITEM_PIPELINES的设置也要写入。set()方法需要两个参数:name和value
- 指定开启的爬虫项目(amazon代表spider文件,AmazonSpider则是指定爬虫的类)
    遇上方知有

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号