Linux教程——Linux和UNIX的关系及区别(详解版)
Vic16:
GitHub不是Linus创立的,Linus当时为了更好地开源Linux项目(准确来说,应该是让别人更好地参与进来),他搞了Git,GitHub只是全世界第一个使用Git进行版本管理的远程服务器
Python 解释器和编译器
阿J~:
看到文章昏昏欲睡的我瞬间来了精神,必须支持
Python爬虫——Python json模块常用方法
北风之神c:
总结的很全面的爬虫,写得赞,博主用心了。
此国产分布式函数调度框架 funboost python万能通用函数加速器 https://funboost.readthedocs.io/zh-cn/latest/articles/c8.html ,
只需要@boost一行代码,加到任意新/旧爬虫项目就又强又自由又简单。
funboost 分布式函数调度框架,定位于调度用户的任何函数,只要用户在函数里面写爬虫代码,就可以分布式调度爬虫,
并且对爬虫函数施加30种控制功能,例如 qps恒定 任何时候随意关机重启代码消息万无一失确认消费 非常简单的开启多进程叠加线程/协程,这些强大的功能绝大部分爬虫框架还做不到。
此框架如果用于爬虫,不管从任何方面比较可以领先scrapy 20年,也比任意写的爬虫框架领先10年。
普通爬虫框架一般就设计为url请求调度框架,url怎么请求都是被框内置架束缚死了,
所以有些奇葩独特的想法在那种框架里面难以实现,用户需要非常之精通框架本身然后改造框架才能达到随心所欲的驾驭的目的。
普通的爬虫框架与用户手写requests 请求解析存储,在流程逻辑上是严重互斥的,要改造成使用那种框架改造需要大改特改。
而此框架是函数调度框架,函数里面用户可以随意写一切任意自由想法,天生不会有任何束缚。
使用funboost爬虫,与用户使用别的爬虫框架或者无框架用户手写多线程爬虫相比, funboost都代码更少更强更简单更自由。
pip install funboost
或者是直接使用 pip install boost_spider (powerd by funboost ,boost_spider比funboost增加了更加专门的针对爬虫请求和解析和存储) https://github.com/ydf0509/b
HTML 和 JavaScript 有什么关系?
Q3e14159:
import pandas as pd
import numpy as np
from openpyxl import Workbook
from openpyxl.styles import Font, Border, Side
from openpyxl.drawing.image import Image
# 创建数据
student = ['王一', '钱二', '周三', '吴四', '李五', '钱六', '郑七', '吴八', '李九']
np.random.seed(0)
scores = np.random.randint(0, 101, size=(len(student), 3))
df = pd.DataFrame(scores, columns=['语文', '数学', '英语'], index=student)
df['总分'] = df.sum(axis=1)
# 创建Excel工作簿和工作表
excel = '学生成绩统计表.xlsx'
wb = Workbook()
ws = wb.active
ws.title = '成绩表'
# 设置标题行
titles = [' ', '语文', '数学', '英语', '总分']
for col_num, title in enumerate(titles, start=1):
ws.cell(row=1, column=col_num, value=title)
# 填充学生数据
for row_num, (student_name, scores) in enumerate(zip(student, df.values), start=2):
ws.cell(row=row_num, column=1, value=student_name) # 写入学生姓名
for col_num, score in enumerate(scores, start=2): # 从第二列开始填充分数
ws.cell(row=row_num, column=col_num, value=score)
# 写入总分
ws.cell(row=row_num, column=5, value=df.loc[student_name, '总分'])
# 设置边框
for row in ws.iter_rows(min_row=1, max_row=len(student)+1, min_col=1, max_col=5):
for cell in row:
cell.border = Border(
left=Side(color="000000", border_style="thick"),
right=Side(color="000000", border_style="thick"),
top=Side(color="000000", border_style="thick"),
bottom=Side(color="000000", border_style="thick")
)
# 设置行颜色
for row_num in range(2, len(student) + 2):
color = "FF0000" if row_num % 2 == 0 else "00BFFF" # 偶数行红色,奇数行蓝色
for cell in ws[row_num]:
cell.font = Font(color=color) # 设置字体颜色
# 添加图片
image_path = 'E:/Python/class4/hell.jpg'
img = Image(image_path)
img.anchor = 'F2' # 使用字符串表示单元格位置
ws.add_image(img)
# 合并单元格
merge_row = len(student) + 2
ws.merge_cells(start_row=merge_row, start_column=1, end_row=merge_row, end_column=5)
ws.cell(row=merge_row, column=1).value = "说明:这只是个测试。"
ws.cell(row=merge_row, column=1).font = Font(bold=True)
# 保存工作簿
wb.save(excel)
print(f"已经生成表格{excel}")
Python super()函数:调用父类的构造方法
m0_60710760:
讲的真好