#pip install Spider_Toolkit
from Spider_Toolkit import spidertools
# 下载器function,返回字符串ok
spidertools.donwload_byte_function()
'''
url: str = None,单个url
headers: [dict[str, any], None] = None,请求头
cookie: [dict[str, any], None] = None,cookie
param: [dict[str, any], None] = None,param
data: [dict[str, any], None] = None,data
proxies: [dict[str, any], None] = None,代理
verify: bool = True,代理
path_: str = './',保存路径,默认为'./',就算是不存在该文件夹也会自动创建
name: str = '',文件名 可以不填,如果url为 .../文件名.文件格式 或者 .../文件名.文件格式?...的形式,会自动进行切割,也支持手动传入
type_: str = ''存储文件类型 同上
'''
# 下载器class,根据urls的长度和Max_Thread的大小返回单线程或多线程对象
download = spidertools.download_byte()
'''
Max_Thread: int = 0,最大线程数,当为0返回的为单线程下载器对象
Max_Rerty: int = 3,最大重试次数,默认为3,当该url因为请求失败引发一场,若没超出最大重试次数,将会返回对列底部,等待所有任务完成第一轮后再次请求,若超出,则移出对列,加入错误列表
Time_Sleep: [float, int] = 0,每轮睡眠时间,当为单线成时,为每个url请求后的休眠时间,多线程时为每最大线程数后的休眠时间
Request_Timeout: [float, int] = 10,请求超时时间,当超过这个时间后引发异常
urls: list = None,urls只支持传入列表,传入其他类型将会引发异常
headers: [dict[str, any], None] = None,请求头
cookie: [dict[str, any], None] = None,cookie
param: [dict[str, any], None] = None,param
data: [dict[str, any], None] = None,data
proxies: [dict[str, any], None] = None,代理
verify: bool = True,verify
path_: str = './',保存路径,就算是不存在该文件夹也会自动创建
Name_Rules: str = 'default',命名规则,为default时,将自动切割url达到保存文件的文件名和类型,为title时,必须传入列表类型的titles,titles的长度必须与urls长度一致,titles为每个urls的文件名
titles: [list, None] = None,titles若Name_Rules不为title,则不需传入,传入会报错
type_: str = '',文件保存类型,适用于url中不含有文件类型的时候,会将所有下载的文件保存为该类型
Save_Error_Log: bool = True,保存错误日志
Show_Progress_Bar: bool = False,显示进度条
Show_Error_Info: bool = True显示错误信息,当出现失败的请求时,会打印当前url,是否超过最大重试,错误原因
'''
download.start() # 开始执行
# 保存到csv的function,返回字符串ok
spidertools.save_to_csv()
'''
path_: str = '',文件路径,就算是不存在该文件夹也会自动创建
file_name: str = '',文件名
data: list = None,数据类型为[[列1,列2,列3],...]
mode: str = 'w',模式为w时文件可以不存在,为a时文件必须存在
encoding: str = 'utf-8',编码
errors=None,error
newline=''换行,可以理解为print的end参数
'''
# 保存到xlsx的function,返回字符串ok
spidertools.save_to_xlsx()
'''
path_: str = '',文件路径,就算是不存在该文件夹也会自动创建
file_name: str = '',文件名
data: dict = None,数据类型为{'列名':[1,2,3],...}
mode: str = 'w','w',模式为w时文件可以不存在,为a时文件必须存在
sheet_name: str = "Sheet1",sheet名,指定写入哪一个sheet
columns: any = None,同pandas
header: bool = True,同pandas
index: bool = True 同pandas
'''
# 保存到mysql的class,返回save_to_mysql对象,用完记得.close()
to_mysql = spidertools.save_to_mysql()
'''
host: str = 'localhost',
port: int = 3306,
user: str = 'root',
password: str = '',
database: str = '',
charset: str = 'utf8'
'''
to_mysql.insert()
'''
table,表名
data 数据{'列名':[1,2,3],...}
'''
to_mysql.close()
# 保存到redis的class,返回save_to_redis对象,用完记得.close()
to_redis = spidertools.save_to_redis()
'''
host: str = 'localhost',
port: int = 6379,
database: str = '',
password: str = '',
pool_size: int = 10连接池大小
'''
to_redis.put()
'''
key,
value
'''
to_redis.close()
# 保存到mongodb的class,返回save_to_mongo对象,用完记得.close()
to_mongo = spidertools.save_to_mongo()
'''
host: str = 'localhost',
port: int = 6379,
database: str = '',
user: str = '',
password: str = '',
pool_size: int = 10,连接池大小
collection: str = ''
'''
to_mongo.put()
'''
data
'''
to_mongo.close()
# 打开js的function,返回的为execjs.compile()对象,可直接.call()调用
js=spidertools.open_js()
'''
path_: str = '',文件路径
encoding: str = 'utf-8',编码
cwd: any = None
'''
js.call()
新模块Spider_toolkit介绍
于 2023-06-11 10:04:10 首次发布