码迷,mamicode.com
首页 > 其他好文 > 详细

在py文件中开启scrapy爬虫

时间:2021-03-31 12:10:02      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:item   info   port   star   load   rtsp   路径   参数   mic   

前言

使用scrapy框架编写爬虫时,开启爬虫需要在终端使用命令来执行,且无法进行断点调试debug,所以需要另外编写一个py文件,来运行调试这个scrapy爬虫项目。

一、在py文件中开启爬虫

一般运行scrapy的命令是:scrapy crawl 项目名

这里不再需要使用这个命令,而是另外创建一个用于运行scrapy的py文件。
技术图片

  1. 在项目根目录下创建main.py文件
  2. 在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)
  1. 导入对应的包
  2. ITEM_PIPELINES的设置也要写入。set()方法需要两个参数:name和value
  3. 指定开启的爬虫项目(amazon代表spider文件,AmazonSpider则是指定爬虫的类)

在py文件中开启scrapy爬虫

标签:item   info   port   star   load   rtsp   路径   参数   mic   

原文地址:https://www.cnblogs.com/FevolQ/p/14431123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!