几行代码教你快速创建scrapy项目,非常实用建议收藏!
import shutil,os
修改settings.py
def config(scrapy_path,project_name):
judge=input("是否自动修改配置?是:yes|y 否:no|n\n请选择:")
if judge=='yes'or judge=='y'or judge== '是':
setting_path=f'{scrapy_path}/{project_name}/{project_name}/settings.py'
#修改items配置
with open(setting_path,"rt+",encoding="utf-8") as fp:
lines=fp.readlines()
for i in range(len(lines)):
lines[i]=lines[i].replace('ROBOTSTXT_OBEY = True','ROBOTSTXT_OBEY = False')
if "ITEM_PIPELINES" in lines[i] or "DOWNLOADER_MIDDLEWARES" in lines[i]:
lines[i]=lines[i].strip('# ')
lines[i+1] = lines[i+1].strip('# ')
lines[i+2] = lines[i+2].strip('# ')
with open(setting_path,"wt+",encoding="utf-8") as fp:
text="from fake_useragent import UserAgent\nua=UserAgent()\nUSER_AGENT = ua.ie\nLOG_LEVEL='ERROR'\n"
fp.write(text)
for line in lines:
fp.write(line)
print("配置成功")
else:
print("默认配置")
def INPUT():
project_name=input("请输入scrapy项目名:").split()[0]
spider_name = input("请输入爬虫名称:").split()[0]
if project_name==spider_name:
print('项目名和爬虫名不能相同,请重新输入!')
os.system('cls')
return INPUT()
else:
main_url = input("请输入网址:").split()[0]
name = {
'project_name': project_name,
'spider_name': spider_name,
'main_url':main_url,
}
return name
#创建主体项目文件
def start_project(scrapy_path,project_name,spider_name,main_url):
# 创建scrapy工程
man1 = f'scrapy startproject {project_name}'
os.system(man1)
# 创建爬虫文件
man2 = f'scrapy genspider {spider_name} {main_url}'
os.system(man2)
# 移动爬虫文件
shutil.move(f'{scrapy_path}/{spider_name}.py',
f'{scrapy_path}/{project_name}/{project_name}/spiders/{spider_name}.py')
# 创建主文件
with open(f'{scrapy_path}/{project_name}/main.py', "w+", encoding="utf-8") as fp:
text = f"from scrapy import cmdline\ncmdline.execute('scrapy crawl {spider_name}'.split())"
fp.write(text)
print("scrapy框架创建成功!".strip())
if __name__ == "__main__":
scrapy_path = os.getcwd()
name=INPUT()
project_name =name['project_name']
spider_name =name['spider_name']
main_url=name['main_url']
start_project(scrapy_path,project_name,spider_name,main_url)
config(scrapy_path, project_name)
#文件介绍
#该框架默认创建在该py文件下
#mian.py可直接执行scrapy框架,不用输入繁琐的cmd命令
#直接对框架中的文件进行修改即可
几行代码教你快速创建scrapy项目,非常实用建议收藏!的更多相关文章
- iOS开发——实用技术OC篇&8行代码教你搞定导航控制器全屏滑动返回效果
8行代码教你搞定导航控制器全屏滑动返回效果 前言 如果自定了导航控制器的自控制器的leftBarButtonItem,可能会引发边缘滑动pop效果的失灵,是由于 self.interactivePop ...
- 爬虫学习笔记(2)--创建scrapy项目&&css选择器
一.手动创建scrapy项目---------------- 安装scrapy: pip install -i https://pypi.douban.com/simple/ scrapy 1 ...
- pycharm创建scrapy项目教程及遇到的坑
最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也踩了一些坑,现在整理 ...
- scrapy(一)--Pycharm创建scrapy项目
1.环境 操作系统:windows10. python版本:python3.6,Anaconda(将Anaconda3\Scripts;路径添加到环境变量Path中) pycharm:pycharm2 ...
- 2springboot:快速创建springboot项目
使用IDEA快速创建springboot项目流程: 创建新的项目选择 项目的命名以及包名 需要什么包就导入什么包 进行测试的单元 <dependency> <groupId>o ...
- 终端创建scrapy项目时报错(转)
在终端创建scrapy项目时报错 PS D:\scrapy_project> scrapy startproject fangFatal error in launcher: Unable to ...
- Spring-boot(一)通过向导快速创建Spring-boot项目
通过向导快速创建Spring-boot项目 创建步骤: 选择Spring Initializr 填写组织和模块名 选择对应的模块 注:这里左侧的模块比较多,玩家可以根据自己的实际需要自由选择,此处暂时 ...
- 【快学springboot】1.快速创建springboot项目
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...
- 快速创建 Vue 项目
转载:https://www.jianshu.com/p/c7df292915e7 为了便于 Vue 项目的管理, Vue 团队官方开发了 vue-cli 工具. 本文将带您使用 vue-cli 快速 ...
- 在线快速创建SpringBoot项目
都2020年了,你还在手动创建SpringBoot项目吗?今天教你在线快速创建一个SpringBoot项目,瞬间高大上有木有! 进入正题,首先打开创建SpringBoot的官网:https://sta ...
随机推荐
- java中的4种引用和GC Roots
https://juejin.im/post/5d06de9d51882559ee6f4212?utm_source=gold_browser_extension 1.首先,四种引用如下: Final ...
- Java学习笔记-封装Java Util包Base64方法
懒人菜鸟入门Java系列-习惯性封装常用方法,方便开发过程中调用 注释: Java版本-1.8 1 * @Author wuwenchao 2 * @Version 1.0.0 3 * @Date ...
- 【其他】etcd
配置 node1 name: etcd-1 data-dir: /data/etcd/node1 listen-client-urls: http://127.0.0.1:6701 advertise ...
- CentOS 7 时区设置 EST和CST设置
1. https://blog.csdn.net/allway2/article/details/102995747 CentOS 7 时区设置# timedatectl status Lo ...
- Spring--事务角色+事务属性
事务管理员 发起事务方,在Spring中通常指代业务层开启事务的方法 也就是相当于这个: 事务协调员 加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法 也就是相当于这个: 事务相关配 ...
- PMP常见会议小结
转载请注明出处: 会议是吸引项目团队和其他干系人参与的重要方式.它们是整个项目的主要沟通方式. 一. 项目启动会 召开时间:是启动阶段结束时召开的会议. 主要任务:发布项目章程,并任命项目经理,赋予项 ...
- 【Jenkins】linux与windows环境下的安装步骤
linux环境: <1>安装jdk: https://www.cnblogs.com/poloyy/p/12801792.htmljdk (参考) <2>环境清理 find / ...
- Java面试——SQL语句题
更多内容,前往IT-BLOG 一.行转列问题 现有表格A,按照以下格式排列: 姓名 收入类型 收入金额 Tom 年奖金 5w Tom 月工资 10k Jack 年奖金 8w Jack 月工资 12k ...
- odoo 开发入门教程系列-模型和基本字段
模型和基本字段 在上一章的末尾,我们创建一个odoo模块.然而,此时它仍然是一个空壳,不允许我们存储任何数据.在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name).描述(descrip ...
- Maven常用依赖包简单
Maven官方仓库:Maven Repository: junit » junit (mvnrepository.com) Mysql 1 <!--Mysql--> 2 <depen ...