几行代码教你快速创建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 ...
随机推荐
- 统信桌面端专业版开启cron日志,确认定时任务执行情况
默认没有开启cron日志记录 1. 修改rsyslog vi /etc/rsyslog.conf #将cron前面的注释符去掉 cron.* /var/log/cron.log 排查完毕需关闭,重新注 ...
- fiddler动态调试js
背景 昨天获取到的网易云音乐站点的请求内容居然是加密的, 就需要动态的调试js找出params很secSeky未加密之前的内容. 调试方法 调试之前需要在目标浏览器上部署上fiddler的根证 ...
- idea开发使用外置tomcat配置
1. 添加依赖 <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId> ...
- sqlserver 生成随机值
随机生成100以内的整数 select top 10 number,ceiling(rand(checksum(newid()))*100) from master.dbo.spt_valueswhe ...
- 第八次团队作业:Beta冲刺(凡事预则立)
这个作业属于哪个课程 2018级计算机和综合实验班 这个作业要求在哪里 Beta冲刺要求 这个作业的目标 Beta冲刺 改进完善的功能 完善之前年度报告功能 尽快上线小程序 增加的新功能 小程序打卡功 ...
- 文件的上传&预览&下载学习(四)
0.参考博客 https://blog.csdn.net/Chengzi_comm/article/details/53037967 逻辑清晰 https://blog.csdn.net/alli09 ...
- 论文解读(CosFace)《CosFace: Large Margin Cosine Loss for Deep Face Recognition》
论文信息 论文标题:CosFace: Large Margin Cosine Loss for Deep Face Recognition论文作者:H. Wang, Yitong Wang, Zhen ...
- 一文详解扩散模型:DDPM
作者:京东零售 刘岩 扩散模型讲解 前沿 人工智能生成内容(AI Generated Content,AIGC)近年来成为了非常前沿的一个研究方向,生成模型目前有四个流派,分别是生成对抗网络(Gene ...
- python入门教程之二十二网络编程
Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...
- pandas之读取文件
当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步.Panda 提供了多种读取数据的方法: read_csv() 用于读取文本文件 read_json() 用于读 ...