月度归档:2024年11月

调休显示

=IFERROR(INDEX(TEXT(E:E,"yyyy-mm-dd")&" "&F:F,SMALL(IF(C:C=J14,ROW(C:C)-MIN(ROW(C:C))+1),ROW(1:1))),"")

卡住C:C=J14  J14为人名

行数目修改 ROW(1:1)


J8-----J68
ROW 为1到41


#NEW
=IFERROR(INDEX(TEXT(E:E,"yy/mm/dd")&"【"&F:F&"h】",SMALL(IF(C:C=J11,ROW(C:C)-MIN(ROW(C:C))+1),ROW(1:1))),"")

#显示 24/12/12 【1h】


=IFERROR(INDEX(TEXT(加班记录!E:E,"yy/mm/dd")&"【"&加班记录!F:F&"h】",SMALL(IF((加班记录!C:C=A3)*(加班记录!E:E>B1),ROW(加班记录!C:C)-MIN(ROW(加班记录!C:C))+1,""),ROW(1:1))),"")

加入日期比较

脚本生成

import os
txt_1="""=IFERROR(INDEX(TEXT(E:E,"yy/mm/dd")&"【"&F:F&"h】",SMALL(IF(C:C=J"""
txt_2=""",ROW(C:C)-MIN(ROW(C:C))+1),ROW("""
txt_3="""))),"")"""
f=open("a.html","w")
f.write("<table>")
for j in range(11,72):
    f.write("<tr>")
    for i in range(1,42):
        txt=txt_1+str(j)+txt_2+str(i)+":"+str(i)+txt_3
        f.write("<td>"+txt+"</td>")
    f.write("<\tr>")
f.write("</table>")
f.close()

#J需要设置人员开始位置与结束位置J11为开始J71为结束位置(减去1)

LLAMA FACTORY 魔搭社区的DSW有点问题

执行访问网页无法加载:

需要修改命令,在安装阶段 前先执行

!pip uninstall -y vllm
!pip install llamafactory[metrics]==0.7.1
!pip install accelerate==0.34.1
#安装accelerate==0.34.1 可能需要改的目前无问题
!pip install -e .[torch,metrics]
!pip install --no-deps -e .

最后执行

#最后执行
!GRADIO_SERVER_PORT=7860 GRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/ CUDA_VISIBLE_DEVICES=0 USE_MODELSCOPE_HUB=1 python src/webui.py

CONDA (windows10)安装及安装GIT 并关闭代理,CUDA安装

下载anaconda ,地址:https://www.anaconda.com/download/success

下载链接:https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Windows-x86_64.exe

大概800-900MB,安装需要10-30分钟(选择全部用户)

创建虚拟环境后,选择使用命令行进入。

进入相应的环境后

conda install git

若GIT提示从127.0.0.1出去无法下载请关闭git的proxy

git config –global –unset https.proxy

git config –global –unset http.proxy


CUDA安装

CUDA Toolkit 10.1 Original Archive | NVIDIA Developer

请务必选择LOCAL(大小 2.3GB),不然选择网络安装包太慢(net 大小10MB)

上面是CUDA10.1安装后自动检测环境安装相应的CUDA版本。

安装完成后CMD执行:nvcc -V
可以测试CUDA是否安装完成

CUDNN安装

cuDNN 9.5.1 Downloads | NVIDIA Developer 英伟达开发者网站下载CUDNN

Index of /compute/cudnn/redist/cudnn/windows-x86_64

选择CUDNN版本,这里CUDA10.1对应CUDNN 版本

cudnn-windows-x86_64-8.7.0.84_cuda10-archive.zip 231MB 2022-11-22 23:03

python PlayWright爬虫 支持JS 类似selenium

类似selenium一样的工具来了

Playwright

pip install playwright
playwright install 
#执行以上命令完成安装

快捷使用教程

  • locator 可以点击 填充 迭代
  • query_selector 只能查询,且单元素
  • query_selector_all可以迭代
  • all()链式可以在locator后用于迭代
  • text_content 获得信息 get_attribute获得属性 inner_html获得HTML内容

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动浏览器
    browser = p.chromium.launch(headless=False)
    # 打开新页面
    page = browser.new_page()
    # 导航到网页
    page.goto('https://example.com')
    # 获取页面标题
    print(page.title())
    page.locator("#kkk").click()
    page.locator("#kk_input").fill("MXMX")
    page.locator("#text_value").get_attribute("src")
    page.locator("#text_value").text_content()


    # 获取所有匹配的元素 方法通常使用all()链式操作
    list_items = page.locator('ul#myList li').all()

    # 遍历元素并打印文本内容
    for item in list_items:
        print(item.text_content())
    
    # 获取所有匹配的元素 ,定位到父元素下的所有子列表项
    list_items = page.locator('ul#myList li') 
    # 使用 for 循环迭代子元素 必须使用nth 较为不方便
    for i in range(list_items.count()):
        # 获取每个子元素的文本内容
        text = list_items.nth(i).text_content()
        print(f'Item {i}: {text}')

    #使用query_selector 和query_selector_all两个方法重写了
    list_items = page.query_selector_all('ul#myList li')    
    # 遍历元素并打印文本内容
    for item in list_items:
        print(item.text_content())

    # 关闭浏览器
    browser.close()

关于UA和Cookie

cookies_data = [
    {
        'name': 'cookie_name',
        'value': 'cookie_value',
        'domain': 'example.com'
    },
    # 添加其他 Cookie 数据
]  
#UA在设置浏览器的时候创建
browser = playwright.chromium.launch(
        headless=False,
        user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
    )

#cookie设置
context = browser.new_context()
context.set_cookies(cookies_data)
page = browser.new_page()
# UA在后面也可以设置 ,header内信息可以统一设置通过 page.et_extra_http_headers()
其中的header输入需要传入的header值。

page.set_extra_http_headers(
        headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
        }
    )

page.goto("https://www.baidu.com/")

截图(可以截图特定元素的截图,比selenium高级)

#截图整个页面
page.screenshot(path='example.png')


# 截取视窗的可见部分
page.screenshot(path='visible_part.png', full_page=False)


# 截取特定元素的截图
element = page.locator('selector')  # 替换为你想要截图的元素选择器
element.screenshot(path='element.png')

LLAMA_factory训练数据设置,需要CUDA

RT,需要CUDA 因为没有显卡,看来只能在网上训练 。

训练数据设置:
在data目录设置创建JSON文件:
如下的TEST.json

[
    {
      "instruction": "你是谁?",
      "input": "",
      "output": "我是Saya",
      "history": []
    },
    {
        "instruction": "Saya,真好听的名字,是谁给你取的?",
        "input": "",
        "output": "是一个很重要的人",
        "history": []
      }
  ]

需要修改data文件下的dataset_info.json文件。

{
  "train": {
    "file_name": "train.json",
    "formatting": "sharegpt",
    "columns": {
      "messages": "conversations",
      "images": "images"
    }
  },
  "test": {
    "file_name": "test.json",
    "formatting": "sharegpt",
    "columns": {
      "messages": "conversations"
    }
  }
}
#将TEST的训练数据加入