跳转到内容
彼岸论坛

小天管理

管理员
  • 内容数

    15409
  • 注册日期

  • 最后上线

  • 得奖次数

    1

小天管理 发表的所有内容

  1. 凹语言发布了 v0.16.0 中秋特别版本, 其中语言的变化是增加了源码位置信息的预定义常量. __package__: 当前代码所在包路径, 无类型字符串常量 __FILE__: 当前代码所在文件名, 无类型字符串常量 __LINE__: 当前代码所在文件的行号, 无类型整数常量 __func__: 当前代码所在的具名函数或方法名字, 无类型字符串常量 可以这样打印源码位置信息: func main { println("__package__:", __package__) println("__FILE__:", __FILE__) println("__LINE__:", __LINE__) println("__func__:", __func__) } 执行效果如下: $ wa run hello.wa __package__: __main__ __FILE__: hello.wa __LINE__: 4 __func__: main 原文: https://wa-lang.org/smalltalk/st0050.html
  2. 一键防窥屏神器 介绍: https://mosaicscreen.netlify.app/ 下载: https://ritr.itch.io/mosaic-screen
  3. 这个应该是是什么行情呀。2000 可以拿下吗。 主要是能跑 gta5 或者将来的 6 。 感谢。
  4. 提示证书蹦了 希望只是单纯的小问题 一直在用
  5. 我的代码: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import pandas as pd import time # 设置 Chrome 选项以启用 headless 模式和自定义 user-agent chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") chrome_options.add_argument( f'--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"' ) # 初始化 WebDriver driver = webdriver.Chrome( executable_path="D:/lab/chromedriver-win64/chromedriver.exe", options=chrome_options ) url = "https://webs.bjidex.com/sys-bsc-home/#/bscConsole/tradingMarket" # 访问网页 driver.get(url) # 初始化一个列表来保存数据 data_list = [] # 爬取数据 for page in range(184): # 构建翻页按钮的 XPath if page < 4: next_button_xpath = "/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[2]/ul/li[10]/button" elif 4 < page < 181: next_button_xpath = "/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[2]/ul/li[12]/button" elif 181 < page: next_button_xpath = "/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[2]/ul/li[10]/button" else: next_button_xpath = "/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[2]/ul/li[11]/button" # 爬取每页的 10 组数据 for i in range(1, 11): time.sleep(1) # 等待页面加载新内容 # 构建每组的 XPath product_name_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[1]/div/div[1]/div/span[1]" supplier_list_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[1]/div/div[3]/span" product_type_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[1]/div/div[1]/div/span[2]" application_scenario_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[1]/div/div[3]/div" product_description_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[1]/div/div[2]" price_xpath = f"/html/body/div[2]/div[2]/div/div/div[2]/div/div/section/div/div/div/div[7]/div/div[1]/div/ul/li[{i}]/div[2]/div[1]" try: # 供应商提供商品名称 product_name = driver.find_element(By.XPATH, product_name_xpath).text # 数据供应商名单 supplier_list = driver.find_element(By.XPATH, supplier_list_xpath).text # 商品类型 product_type = driver.find_element(By.XPATH, product_type_xpath).text # 应用场景 application_scenario = driver.find_element( By.XPATH, application_scenario_xpath ).text # 商品描述 product_description = driver.find_element( By.XPATH, product_description_xpath ).text # 价格 price = driver.find_element(By.XPATH, price_xpath).text # 将数据添加到列表 data_list.append( { "页数": page + 1, "供应商提供商品名称": product_name, "数据供应商名单": supplier_list, "商品类型": product_type, "应用场景": application_scenario, "商品描述": product_description, "价格": price, } ) except Exception as e: print(f"Error on page {page + 1}, item {i}: {e}") # 点击翻页按钮 try: next_button = WebDriverWait(driver, 2).until( # 等待时间为 2 秒 EC.element_to_be_clickable((By.XPATH, next_button_xpath)) ) next_button.click() except Exception as e: print("翻页出错或已经是最后一页:", e) break # 如果无法翻页,则跳出循环 # 关闭浏览器 driver.quit() # 将列表转换为 DataFrame data_df = pd.DataFrame(data_list) # 输出为表格 data_df.to_csv( "bjidex.com_data.csv", index=False, encoding="utf_8_sig" ) # 保存为 CSV 文件 print(data_df) # 打印 DataFrame 输出 PS D:\lab\bigdata24.9.9> & C:/tools/miniconda3/python.exe d:/lab/bigdata24.9.9/bjidex.com.py DevTools listening on ws://127.0.0.1:60057/devtools/browser/66a61aa5-3598-4069-94bd-d4f10be20d96 [42892:8184:0915/232611.717:ERROR:ssl_client_socket_impl.cc(882)] handshake failed; returned -1, SSL error code 1, net_error -101 [42892:8184:0915/232611.834:ERROR:ssl_client_socket_impl.cc(882)] handshake failed; returned -1, SSL error code 1, net_error -101 [42892:8184:0915/232630.213:ERROR:ssl_client_socket_impl.cc(882)] handshake failed; returned -1, SSL error code 1, net_error -101 翻页出错或已经是最后一页: Message: 页数 ... 价格 0 1 ... 0.5 元/次 1 1 ... 0 元/次 2 1 ... 0 元/次 3 1 ... 2.5 元/次 ... 37 4 ... 0.2 元/次 38 4 ... 0.1 元/次 39 4 ... 0.15 元/次 [40 rows x 7 columns]
  6. 介绍 小颜同学是一个精美卡片制作的贴身小助手,让你的文字充满艺术气息。 免费,界面美观,交互简单,只需要输入文字,就可以帮助你生成优雅的媒体卡片。 在线体验 https://yan.ognai.com 演示 https://i.imgur.com/qOqQXlv.png imgur.com/qOqQXlv
  7. 相比其他插件,主要有以下三个特别功能: 选中文字后直接翻译。相比其他插件,不需要额外点击翻译图标,减少操作步骤。 通过右上角弹窗方式展示翻译内容,不会遮挡正在浏览的内容 针对单个单词的翻译,可以展示字典功能,帮助英文理解。默认关闭状态。 起因:自己用翻译插件的时候发现需要额外点击图标,1 )图标小,不好点。2 )这个步骤多余。所以就自己做了一款。 说明:楼主之前是做风控算法的,没有接触过前端,产品比较简陋,大家担待。也是自己第一个成功发布的个人产品,欢迎大家的建议。 插件: https://chromewebstore.google.com/detail/poptranslate/moejenjdfpgijcnbddoeokjflkfighla 源码: https://github.com/wa008/PopTranslate
  8. 使用超简单,打开页面,输入标题、作者、内容,点击发送,等待几秒发布到 ipfs 上,自动跳转到新页面。 如果发送超时,刷新后有缓存,再次发送即可。 注意事项 所有发送内容不可删除,请勿发送隐私内容 可以切换多个网关使用 下列网关进行体验: blockframe eth.sucks ipfsscan 你想一点什么呢
  9. 最近几年,是不是的会闻到(也许不是从外界闻到,而是身体感觉到)一种香味,类似檀香,很浓。 开始以为是家具的味道或者是家里衣服上的洗衣液的味道。还以为是熬夜的问题。 但是,有几次在办公室也可以闻到,但是寻找香味的来源,周边闻了很久都没找到。 所以觉得是从身体内部产生。 ----------------------------------- 大家是否也能闻到这样的香味?
  10. https://www.v2ex.com/t/1073207 帖子里说“原来阿里云盘在服务端是不加密的”然后一堆人附和,说加密就不能秒传。看来大家对加密的概念还很生疏。 对阿里云不熟,就拿 aws 的 s3 来说吧。s3 默认对于每个文件都是服务端加密的,而且是每个文件一个密码。但即使是这样,也不影响设计秒传,不影响一个用户看到他人的文件。 所谓 server 端加密,是指[文件不会明文写到磁盘上]。在上传时用随机密钥加密文件,随机密钥再用预先配置的非对称密钥加密,然后将随机密钥加密后的文件、非对称加密后的随机密钥分别存储在 aws 中。在下载时,aws 会先解析成明文,然后使用 https 传输到用户/业务服务器。所以无论谁去下载你的文件,aws 都会给他解密后的版本。 至于秒传,是第一次上传时保存整体的哈希,以及每一个文件块的哈希,类似 bt 种子。再次上传时,用户本地生成一个新的哈希,服务端一看,在我的 redis 里面已经有这个种子了你就秒传了,跟文件存储一点关系都没有。 如果你希望服务器不能看你的文件,那要做的是客户端加密,也就是文件已经加密好上传到服务器,服务器根本不知道如何解密当然也就没法生成缩略图或者秒传了。
  11. 21 年的 Thinkbook 14p g2 CPU R7-5800H 32G 内存 最近用 VSCode 总是是不是卡一下,有点烦,所以原本是想要换一台电脑的,但是今天编译 Linux 内核的时候发现一套下来也就 40min 左右(肯定不是全部模块都启用,Arch 默认 config 基础上加上几个 HID 的一些子模块)。然后回过来一想,编译内核也就 40min ,至少这个性能我还是能接收的——虽然不算多牛比,但是我已经满足了,没必要给自己制造性能焦虑。 最重要的是我发现在 CPU 占用率 100% 的这段时间做其他事情基本没有受影响,这体验就很舒服。所以,虽然它已经跟不上主流笔记本的性能,但是对我来说已经够了,至少是一个我能满足的性能。至于 VSCode 偶尔卡吨一下的问题一来稍微忍一忍也未尝不可,而来自己本来也就在往 neovim 上迁移,只是一直没有断舍干净。 也许还能再战三年?
  12. 写在前面 接上一个帖子([https://www.v2ex.com/t/1073068]),请教了大家如何减少暴漏 NAS 的端口,建议比较多的是使用 WireGuard ,遂尝试部署了下,踩了好多坑,终于调通,跟大家分享一下经历 我的设备情况: NAS:群晖 1821+ ,DSM 7.2.1-69057 Update 5 ,内网 IP 是 192.168.1.2; WireGuard 服务端:wg-easy/wg-easy v14.0.0 ; 手机:iPhone 15 ,iOS 17.6 (21G80); WireGuard 客户端:Loon 3.2.2 (749); 有动态公网 IPv4 地址,有一个域名 example.com,通过 DDNS 把公网 IPv4 地址绑定到云服务商,NAS 上安装了泛域名证书。 在这个实例中,域名、端口号、密码等均为虚构,请根据你的需要修改。 一、在 NAS 安装部署 WireGuard 1. 解决内核版本过低问题 WireGuard 要求 Linux 内核版本高于 5.6 ,但是群晖不满足这个要求,在 NAS 终端执行 uname -r 后看到 4.4.302+ 办法是安装第三方套件源,套件中心 → 设置 → 添加: https://spk7.imnks.com/ 进入社群,搜索 WireGuard 下载,在 NAS 终端执行 sudo sed -i 's/package/root/g' /var/packages/WireGuard/conf/privilege 修复权限问题。 2. 通过 Container Manager 构建 WireGuardEasy 2.1. 新建目录 docker/WireGuardEasy,docker/WireGuardEasy/config; 2.2. 新建 compose.yml 文件,上传到 docker/WireGuardEasy,内容如下: services: wg-easy: environment: - LANG=chs - WG_HOST=example.com # NAS 的域名 - PASSWORD_HASH=$$2y$$10$$hBCoykrB95WSzuV4fafBzOHWKu9sbyVa34GJr8VV5R/pIelfEMYyG # 哈希后的密码,下面有介绍怎么生成 - PORT=51821 # WireGuardEasy 的后台管理端口,TCP 协议的 - WG_PORT=51820 #WireGuardEasy 的连接端口,UDP 协议的,需要映射暴露到外网。 - WG_DEFAULT_ADDRESS=10.0.0.1 - WG_ALLOWED_IPS=10.0.0.0/24,192.168.1.0/24 - WG_PERSISTENT_KEEPALIVE=25 - UI_TRAFFIC_STATS=true - MAX_AGE=30 - UI_ENABLE_SORT_CLIENTS=true image: ghcr.io/wg-easy/wg-easy container_name: wg-easy volumes: - /volume1/docker/WireGuardEasy/config:/etc/wireguard ports: - "51820:51820/udp" - "51821:51821/tcp" restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 network_mode: "bridge" 2.2. 用 Container Manager 构建项目; 2.3. 修改后台密码:在 NAS 终端执行 docker run -it ghcr.io/wg-easy/wg-easy wgpw YOUR_PASSWORD,得到 PASSWORD_HASH='$2a$12$ptdssPxwS2vKlXCPcYP3juENfkuhJPGamBQM7utsUJ8Gv7LP8tjm6' 将单引号去除,在每一个 $ 前再添加一个 $,加工成 $$2a$$12$$ptdssPxwS2vKlXCPcYP3juENfkuhJPGamBQM7utsUJ8Gv7LP8tjm6 填入 compose.yml 文件的环境变量 PASSWORD_HASH 中,清除项目,再构建项目。 3. 对后台管理界面配置反向代理 因为本人有强迫症,不喜欢浏览器提示 HTTP 不安全,所以都会给后台管理界面套一个 HTTPS 反代,通过域名访问,消除安全警告。 描述:WireGuardEasy 来源协议:HTTPS 来源主机名:wg.example.com 来源端口:443 启用 HSTS 目的地协议:HTTP 目的地主机名:localhost 目的地端口:51821 如果设置了访问控制文件,且允许远程登后台的话,需要放行 172.16.0.0/12,这是因为容器的网络模式为 bridge,10.0.0.0/24 出容器后地址会被 NAT 成 172.16.0.0/12 ,本质上是容器在访问 NAS 的资源。 4. 配置防火墙 网关路由器设置 UDP 51820 端口转发至群晖,群晖防火墙放行 UDP 51820 端口,群晖防火墙无需再对 10.0.0.0/24,172.16.0.0/12 的来源地址放行,因为容器已经在防火墙之后了。 5. 后台管理 5.1. 访问 https://wg.example.com,密码 YOUR_PASSWORD ,进入管理后台; 5.2. 新建客户端,重要!!把 IP 改为 10.0.0.2,不得占用 10.0.0.1 ; 5.3. 显示二维码,让手机扫码。 二、在手机连接 WireGuard 我使用的是 Loon ,这是一款功能强大的网络代理工具,通过策略组、分流规则、Wi-Fi 规则可以实现内外网无缝切换,日常使用基本无感。 1. 添加本地节点 用 Loon 添加本地节点,扫码添加,名称为 NAS_WireGuard,删除默认添加的 1.1.1.1 DNS 。 2. 设置 DNS 映射 因为本人有强迫症,不喜欢浏览器提示 HTTP 不安全,所以一律通过域名访问内网资源,消除安全警告,所以就需要配置本地 DNS ,这里使用 Loon 的 DNS 映射功能。 DNS 映射规则有顺序,从上到下匹配,要确保 ssid 那条在最顶。 ssid:ChinaNet-Home = server:192.168.1.1 # 当手机连入家里的 Wi-Fi:ChinaNet-Home 时,将 DNS 服务器设为路由器的 IP ,由路由器负责把 `example.com` 解析到 NAS 的内网 IP critical-service.example.com = 192.168.1.2 # 将 critical-service 服务的主机名指向 NAS 的内网 IP wg.example.com = 192.168.1.2 ## 将 WireGuard 管理后台的主机名指向 NAS 的内网 IP 第一条映射规则的作用是,当手机在家时,把 NAS 的域名解析到内网 IP ; 后面的规则作用是,当手机不在家时,将几个关键服务的主机名解析到内网 IP ,配合 WireGuard 隧道访问; 当手机不在家时,非关键服务的主机名还是通过云服务商解析,通过传统的 DDNS 访问,不走隧道。 3. 添加策略组 服务器 = ssid,default=NAS_WireGuard,cellular=NAS_WireGuard,"ChinaNet-Home"=DIRECT,url = http://www.gstatic.com/generate_204 添加一个名为 服务器 的策略组。当手机连入家里的 Wi-Fi:ChinaNet-Home 时,访问 NAS 一律直连,当手机用其他 Wi-Fi 或蜂窝网络时,就走本地节点 NAS_WireGuard,隧道访问,url 是测延迟的链接。 4. 设置分流规则 AND,((OR,((DEST-PORT,1234),(DEST-PORT,443))),(DOMAIN-SUFFIX,example.com)),服务器 AND,((OR,((DEST-PORT,5000),(DEST-PORT,5001))),(DOMAIN-SUFFIX,example.com)),DIRECT 设置两个嵌套的分流规则: 第一条规则:当访问 wg.example.com:443,critical-service.example.com:1234 时,交给 服务器 策略组进一步处理,用来保护关键服务配合 WireGuard 隧道访问; 第二条规则:当访问 file.example.com:5000,music.example.com:5001 时,通过传统的 DDNS 访问,不走隧道,需要防火墙放行这两个端口。 5. 取消默认的绕过路由 (bypass-tun) 和绕过代理 (skip-proxy) 在 bypass-tun 和 skip-proxy 中,要删除 example.com,192.168.0.0/16, 192.168.1.0/24,确保这些域名和内网地址通过 Loon 的处理 最后的效果 只要手机的 Loon 一直开启,无论身在何处,都可以访问 wg.example.com:443,critical-service.example.com:1234 这两个关键服务,端口在公网不可见,没有 DNS 解析问题; file.example.com:5000,music.example.com:5001 这两个非关键服务的端口在公网仍然可见,满足资源共享的需求。 唯一美中不足的是,当手机从内网切到外网时,做不到无缝衔接,需要等待几秒钟才能建立 WireGuard 连接,甚至要手动关闭 Loon 再开启,有无优化的办法?
  13. Planet Update 13 里带来一个新的网页上接受 ETH 打赏的功能,可以在 Planet 经过简单设置,就可以在 Sepia 模版上启用。 如果你是内容创作者、开源软件开发者,之前用过 PayPal 或者 Ko-Fi 的打赏,那么来试试这种新的方式吧。不需要向任何人申请,也没有任何人可以扣留你收到的款项,一切都只需要代码。 https://olivida.eth.sucks/feature-update-13/
  14. 当前仅支持阿里云用户使用具备公网访问能力的阿里云产品进行镜像加速,且仅限于特定范围内的容器镜像。详情请见公告。https://help.aliyun.com/zh/acr/product-overview/product-change-acr-mirror-accelerator-function-adjustment-announcement 由于运营商网络问题,拉取 Docker Hub 镜像可能会变慢。 建议手动拉取镜像到本地节点并重启 Pod ,也可上传镜像至 ACR 或使用订阅海外源镜像功能,再从 ACR 拉取对应镜像。 现在哪个国内的镜像服务还可以用?
  15. 如何看待 iPhone 16 和 iPhone 16 Plus 依然采用 60Hz 刷新率的屏幕? - Luv Letter 的回答 - 知乎 https://www.zhihu.com/question/665832611/answer/3626373465
  16. 网站名称 tiktok 表情 一句话简介 可以通过复制 tiktok code ,在 tiktok 的评论区出现对应的 emoji 表情,简单免费无登录 网站地址 https://tiktok-emojis.com 页面内容 感谢大家花时间看到这里,祝中秋节快乐
  17. ImagenWorks: https://imagenworks.com https://github.com/rudy2steiner/imagenWorks 提供免费额度:10 credits ,可以生成 10 张图片。需求大的可以在下方留下邮箱,额外赠送 10 credits 。
  18. 由于使用的工具只能填写官方 sk 使用,想问问怎样给官方账号充值,或者怎样可以买到有额度的账号?
  19. app 主要是免费性质的,因为是个人开发暂时也没了解收款渠道这些问题,所以暂时不做增值服务、会员等收费渠道。 目前考虑的有这几个方面,但都不熟悉渠道,不知道怎么接入: 1.在一些不太影响用户体验的页面接入广告; 2.希望最好是接入可以带来收入的内容,比如图文多媒体、小游戏等资源,按照流量转化来结算。但不知道有没有这方面的资源。 3.也考虑资源互换。 我们的 app 在流量方面应该没多大问题。我主要考虑的是如何在不太影响用户体验的前提下做流量变现。
  20. 同标题,测试好多软件都找不到,弱弱的来请教大家,感谢
  21. 分享最近看到一个开源项目 Magic UI 在前端圈里传疯了(零毛一条),好奇去看了官方文档预览,确实不错。 而且有很多似曾相识的动画都被集成在了里面,包括 github 、vercel 、bento 的动画等等,提供了非常简便的组件。 趁着中秋放假,把自己的个人主页改了一下,看样子还可以哈哈:zmh.me 个人主页已开源 github - zmh's portfolio,如果你也喜欢这种风格的话可以參考和 use template ,下面是部分预览。
  22. 由于用英语表达更容易理解,所以就用英语写吧: Q: Why everything tastes like chicken? A: Because "everything tastes like chicken" tastes like chicken. Proof: "Everything tastes like chicken" is a set. S = {x | x tastes like chicken} This particular set ("everything tastes like chicken") contains itself because the set itself is an element of "everything". Since "everything tastes like chicken" (as described), "everything", including this set, has to taste like chicken. Hence, "everything tastes like chicken." Q.E.D.
  23. instagram 把 Selenium 完全给封了,有没有其他工具或者说防止被检测到? 或者安卓 APP 方面入手有哪些工具能推荐下
  24. 原理很简单,用 CLIP 模型计算图片的 embedding ,然后和搜索语句的 embedding 进行比较。因为用的是 MLX 来推理模型,所以只有 M 芯片的 mac 能用 GPU 加速,其他平台会很慢。代码全部由 Node.js 实现,embedding 计算用的是自己写的 node-mlx ,没有用第三方的推理引擎和数据库。 本来是处于学习目的写的程序,但实用性非常强,过来分享一下。 https://github.com/frost-beta/sisi
×
×
  • 创建新的...