<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cc9200的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cc9200</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cc9200]]></copyright><item><title><![CDATA[tqsdk天勤量化线程退出问题close]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/157441586</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/157441586</guid><author>cc9200</author><pubDate>Tue, 27 Jan 2026 23:14:14 +0800</pubDate><description><![CDATA[(比如：GUI中点击叉)调用_set_wait_timeout后，wait_update回往后执行，发现self.thread_running=False后，跳出while循环，然后调用api.close()不能在协程中调用 close, 如需关闭 api 实例需在 wait_update 返回后再关闭。]]></description><category></category></item><item><title><![CDATA[chrome插件，绕过CSP限制，Refused to run the JavaScript URL问题]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/146605620</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/146605620</guid><author>cc9200</author><pubDate>Fri, 28 Mar 2025 17:16:24 +0800</pubDate><description><![CDATA[基本原理是：把这个翻页动作的函数注入到页面，注入的函数将在目标页面的主环境中执行。然后在content.js中发个信息与主页面JS通信。实现调用原来网页本身的JS对象。a标签的href不是一个地址二是一个inline的JS代码。点击这个a标签就是执行JS。最后通过chrome.scripting.executeScript解决。]]></description><category></category></item><item><title><![CDATA[inswapper_128.onnx无需网盘reactor]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/144200336</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/144200336</guid><author>cc9200</author><pubDate>Mon, 02 Dec 2024 22:24:19 +0800</pubDate><description><![CDATA[inswapper_128.onnx 下载地址  无需网盘 安装reactor。]]></description><category></category></item><item><title><![CDATA[部署stable diffusion 错误torch.cuda.OutOfMemoryError: CUDA out of memory.]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/129299276</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/129299276</guid><author>cc9200</author><pubDate>Thu, 02 Mar 2023 13:50:10 +0800</pubDate><description><![CDATA[在此启动web_ui.bat，成功打开网页页面。以来安装完毕，开始执行web_ui.bat。webUI.py加一行代码。猜测原因：GPU用错了。]]></description><category></category></item><item><title><![CDATA[pyqt5 QTableWidget 如何横向移动滚动条至指定列？]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/126197741</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/126197741</guid><author>cc9200</author><pubDate>Sun, 07 Aug 2022 15:50:29 +0800</pubDate><description><![CDATA[pyqt5 QTableWidget 如何横向移动滚动条至指定列]]></description><category></category></item><item><title><![CDATA[pyqt5 QTableWidget 点击表头排序 点击无响应]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/125896996</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/125896996</guid><author>cc9200</author><pubDate>Wed, 20 Jul 2022 17:31:52 +0800</pubDate><description><![CDATA[点击表头排序]]></description><category></category></item><item><title><![CDATA[pykeyboard 回车无效]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/125010280</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/125010280</guid><author>cc9200</author><pubDate>Fri, 27 May 2022 20:21:51 +0800</pubDate><description><![CDATA[回车之前有输入内容，输入完直接回车，结果回车无效，原因暂不明确，估计是输入太快导致的


from pykeyboard import PyKeyboard
from time import sleep
k=PyKeyboard()
k.type_string('sc2207')
sleep(0.8)
k.tap_key(k.enter_key)

回车事前加一个sleep，暂停时间长短需要测试，估计是前面输入的字符越多，暂停时间越长

本来以为type_string是线程运行，点进去发现不是，先这么用着吧]]></description><category></category></item><item><title><![CDATA[kotlin 子线程操作view]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/115422358</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/115422358</guid><author>cc9200</author><pubDate>Sat, 03 Apr 2021 22:50:57 +0800</pubDate><description><![CDATA[kotlin开发安卓APP，子线程无法操作View

现在提供一个方案

子线程向主进程发送消息，由主进程操作view




val handler=object:Handler(Looper.getMainLooper()){
    //接受消息，并处理处理
    override fun handleMessage(msg: Message) {
        super.handleMessage(msg)//固定写法，照抄
        //这里开始，是自定义对消息的处理，是主进程处理
.]]></description><category></category></item><item><title><![CDATA[python 异常的层次结构，Python不同类型的异常捕获]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/115415233</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/115415233</guid><author>cc9200</author><pubDate>Sat, 03 Apr 2021 13:27:14 +0800</pubDate><description><![CDATA[BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StopAsyncIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisio.]]></description><category></category></item><item><title><![CDATA[selenium chrome 常用设置]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/115071612</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/115071612</guid><author>cc9200</author><pubDate>Mon, 22 Mar 2021 12:02:33 +0800</pubDate><description><![CDATA[chrom_opt = webdriver.ChromeOptions()
prefs = { "profile.managed_default_content_settings.images": 2} #无图模式
chrom_opt.add_experimental_option("prefs", prefs)
chrom_opt.add_experimental_option('excludeSwitches', ['enable-automation'])  # 指定为开发者模式规避 被检测到

c.]]></description><category></category></item><item><title><![CDATA[安装mitmproxy 报错 ruamel-yaml]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/115016355</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/115016355</guid><author>cc9200</author><pubDate>Fri, 19 Mar 2021 21:29:15 +0800</pubDate><description><![CDATA[删除anaconda/Lib/site-packages下所有的ruamel相关的的文件夹和文件

windows 路径anaconda/Lib/site-packages/ruamel*

Linux 路径anaconda3/lib/python3.8/site-packages/ruamel*



之前搞半天没搞好，只删除文件夹是不行的，其他地方还有ruamel相关的文件
...]]></description><category></category></item><item><title><![CDATA[2020年5月 selenium  反检测方案亲测有效]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/106455462</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/106455462</guid><author>cc9200</author><pubDate>Sun, 31 May 2020 14:50:18 +0800</pubDate><description><![CDATA[from selenium import webdriver

# 为了防止你不确定自己的 chrom 版本，最好两个混合用
options = webdriver.ChromeOptions()
# chrom在79版之前用这个
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
.]]></description><category></category></item><item><title><![CDATA[selenium 点击指定元素的指定位置]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/104909333</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/104909333</guid><author>cc9200</author><pubDate>Mon, 16 Mar 2020 21:52:23 +0800</pubDate><description><![CDATA[from selenium.webdriver.common.action_chains  import ActionChains
from selenium import webdriver

chrome=webdriver.Chrome()
chrome.get('https://kyfw.12306.cn/otn/resources/login.html')
ele=chrome.fin...]]></description><category></category></item><item><title><![CDATA[对称或非对称加密之后得到的密文字节是怎么编码的？]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/104676328</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/104676328</guid><author>cc9200</author><pubDate>Thu, 05 Mar 2020 15:42:47 +0800</pubDate><description><![CDATA[text='God Will Give Me Justice'
enc=rsa.encrypt(text.encode(),publickKey)
enc

#b'\x1f\x93\xceQ\x9ag\x8d\xae\x93/\x96MZ~\xa2\x1f\x07\xca\xaf\xa5^\x9e\xe9)M\x08\xc9\x84\xd0\t\x16\x82\xec\xb6\xd5\nlp\x...]]></description><category></category></item><item><title><![CDATA[scrapy 代理IP资源分配难点]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/103604086</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/103604086</guid><author>cc9200</author><pubDate>Wed, 18 Dec 2019 20:15:34 +0800</pubDate><description><![CDATA[代理IP总资源有限
	向代
	
	理商请求IP的速度有限制
	单个IP并发限制
	单个IP有时效，且不统一
	目标网站封IP策略未可知，只能试探





]]></description><category></category></item><item><title><![CDATA[scrapy CrawlSpider LinkExtractor如何提取img里的src?]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/103490298</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/103490298</guid><author>cc9200</author><pubDate>Wed, 11 Dec 2019 12:25:53 +0800</pubDate><description><![CDATA[rules = (
        Rule(LinkExtractor(allow=r'bizhi/'), callback='parse_item', follow=True),
        Rule(LinkExtractor(tags=['img'],attrs='src'), callback='download_jpg',follow=False),
    ) 


def d...]]></description><category></category></item><item><title><![CDATA[scrapy暂停恢复后停止 恢复失败]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/103458786</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/103458786</guid><author>cc9200</author><pubDate>Mon, 09 Dec 2019 15:27:35 +0800</pubDate><description><![CDATA[你是怎么暂停scrapy爬虫的？



ctrl+c只按一下是暂停，按两下是停止，暂停可恢复，停止不可恢复










启动：scrapy crawl somespider -s JOBDIR=crawls/somespider-1

暂停： Ctrl+C

恢复：scrapy crawl somespider -s JOBDIR=crawls/somespider-1


作...]]></description><category></category></item><item><title><![CDATA[re.findall(r'123',string)里面的r是什么意思？]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/103239452</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/103239452</guid><author>cc9200</author><pubDate>Mon, 25 Nov 2019 15:51:21 +0800</pubDate><description><![CDATA[re.findall(r'123',string)里面的r是什么意思？



r 字符串

b字节
]]></description><category></category></item><item><title><![CDATA[[python] ThreadPoolExecutor线程池   用法]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/103027426</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/103027426</guid><author>cc9200</author><pubDate>Tue, 12 Nov 2019 13:53:53 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/b9b3d66aa0be



ThreadPoolExecutor在线程运行当中出错时不报错，建议不要使用
]]></description><category></category></item><item><title><![CDATA[正则表达式  match  于 search 的区别]]></title><link>https://blog.youkuaiyun.com/cc9200/article/details/102883080</link><guid>https://blog.youkuaiyun.com/cc9200/article/details/102883080</guid><author>cc9200</author><pubDate>Sun, 03 Nov 2019 15:39:56 +0800</pubDate><description><![CDATA[re.match 尝试从字符串的起始位置匹配一个模式，如果不是起始位置匹配成功的话，match()就返回none。



re.search 扫描整个字符串并返回第一个成功的匹配。
...]]></description><category></category></item></channel></rss>