pip 和包
- 用 pip 安装包时,windows 会出各种各样的问题,请关闭代理并使用国内源安装
- 将所有包放在系统 python 中是一个坏习惯,python 各种包的有复杂的版本依赖关系,请使用 anaconda 或者 virtualenv 等包管理器。
- 如果你没有
install
一个包,那么只能在包的父目录下直接import
它,其它位置不能引入,如果install
了,那么你在该环境中任何位置都可以用了,相当于加入了sys.path
。
airtest
import
正常情况下,一个项目中,同一文件被引用两次,那么只会在第一次执行。
但是如果你乱改 sys.path
,然后在 __init__.py
里直接用 import xxx
引入,然后再在外面乱引入,就有可能被引入多次。
关于 Request 这一类网络请求函数
Python 的 Requests 包对请求做了一些包装,但是 NodeJS的 Request 没有这种包装。
因此可能会引发一些 403 问题(比如 Python 的 Requests 可以正常用但 NodeJS 的 Request 不行),可以输出一下它们的 headers 看看最终发出的请求长什么样子。
这是 Python。
1 | { |
这是 JS。
1 | { |
headers:
1 | headers = { |
nodejs 的 request 由于太过常用,已经被一些服务器加入了黑名单,方式是通过建立 https 时的一些 ciphers 来判别是否属于爬虫,容易发生 403。
关于 Clash
Python
用 Clash-For-Windows 的代理的时候,有时候会报 OpenSSL 1131 错误,一般来说配置一下请求的代理到 localhost:7890
就行,注意好像是不支持 HTTPS 代理的,HTTPS 代理填 http://127.0.0.1:7890
。
比较靠谱的一种方式:
1 | os.environ['http_proxy'] = f"{proxy['host']}:{proxy['port']}" |