day27

博客介绍了项目开发涉及的多方面内容,包括configparser配置、subprocess子进程等技术,还阐述了需求分析、技术选型、接口文档、mvc设计文档等要点,最后说明了项目开发流程,涵盖调研、需求分析、架构设计、分工、编码、测试及审核发布等环节。

configparser 配置

subprocess 子进程

c = subprocess.Popen('ipconfig',shell = Ture,stdout = subprocess.PIPE)

xlrd和xlwt

#读表格和写表格

#转日期格式
xlrd.xldate_as_datetime(sheet.row(2)[4].value,0)

xml

#可拓展标记语言,html格式也是基于xml的
#单标签,双标签
#最外层只有一个标签,称为根标签
#json更加适用于前后台交互,跨平台性强,轻量级
#xml 更加适用于 需求更加复杂的场景,例如页
<person type='int'></person>
xml_declaration = True-                                        

面向对象

#面向过程中关注的是实现任务具体的过程,即先后顺序,一种流水线式的机械化思考方式
#耦合:在程序中的提现式,两个模块代码相互影响,比如在模块A中使用了模块B的代码,而降低耦合度就是细化拆分,每个模块只干自己的事
#面向对象 还是 面向过程: 如果项目体积较大,后续可能需要修改需求或是增加需求,优先考虑 面向对象  

需求分析

明确要做的程序 具备哪些功能,并分析 每个功能是否可以用代码实现, 产生需求文档

技术选型

要使用的技术是否已经成熟 (使用的人多,有完整官文档,还有相对活跃的社区)

需要考虑开发团队是否能够hold住该技术

接口文档

后台提供给前台的接口文档

参数1 用户名 类型 字符串

返回值 bool true:登录成功

mvc设计文档

用户层V 接口层C 数据访问层M

用户层 :与用户交互 输出数据 或者接收输入

接口层: 1.判断 验证 组装 数据 交给给数据访问层 来存储 2.从数据访问层拿到数据 组装成用户可以看懂的 格式 交给用户层

数据访问: 提供数据的读取和存储

项目开发流程

  1. 调研

  2. 需求分析

  3. 架构师完成项目demo,完成项目架构

  4. 分工

  5. 写代码

  6. 白盒黑盒测试

  7. 项目审核发布 => 项目 -> 产品

转载于:https://www.cnblogs.com/zhuqihui/p/10902768.html

### 关于亿学编程爬虫 Day27 作业的分析与解答 在亿学编程爬虫 Day27 的课程中,通常会涉及更复杂的爬虫任务,例如定时爬取、多线程或异步爬取等[^1]。以下是一个可能的示例代码和相关技术解析,帮助理解如何实现这些功能。 #### 示例代码:基于 Scrapy 框架的定时爬取任务 Scrapy 是一个强大的网络爬虫框架[^2],可以用来构建高效的爬虫系统。结合定时任务调度工具如 `APScheduler`,可以实现定时爬取的功能。 ```python from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings from apscheduler.schedulers.twisted import TwistedScheduler # 定义爬虫启动函数 def start_spider(): process = CrawlerProcess(get_project_settings()) process.crawl('example_spider') # 替换为实际的爬虫名称 process.start() # 创建调度器并添加定时任务 scheduler = TwistedScheduler() scheduler.add_job(start_spider, 'interval', hours=1) # 每小时运行一次 scheduler.start() ``` #### 多线程爬取示例 对于简单的多线程爬取任务,可以使用 Python 的 `threading` 模块[^3]。以下是一个基础的多线程爬取代码示例: ```python import threading import requests def fetch(url): response = requests.get(url) print(f"Fetched {url}, Status Code: {response.status_code}") urls = ["http://example.com", "http://example.org", "http://example.net"] threads = [] for url in urls: thread = threading.Thread(target=fetch, args=(url,)) threads.append(thread) thread.start() for thread in threads: thread.join() ``` #### 分布式爬取与增量更新机制 在大规模爬虫系统中,分布式爬取和增量更新是常见需求。可以通过 Redis 或其他消息队列工具来管理任务分发和状态同步[^1]。以下是一个基于 Redis 的简单任务队列示例: ```python import redis import json # 初始化 Redis 连接 r = redis.Redis(host='localhost', port=6379, db=0) # 发布任务到队列 task = {"url": "http://example.com", "priority": 1} r.lpush("crawl_queue", json.dumps(task)) # 从队列中获取任务 while True: task_json = r.rpop("crawl_queue") if not task_json: break task = json.loads(task_json) print(f"Processing task: {task}") ``` #### 技术扩展与优化方向 - **反爬策略**:通过设置请求头、使用代理 IP 和随机化 User-Agent 等方式避免被目标网站封禁[^1]。 - **增量更新**:利用哈希值或时间戳记录已爬取的内容,减少重复抓取[^1]。 - **性能优化**:结合异步 IO(如 `asyncio`)和多线程技术提升爬取效率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值