首先:
PC 上装了 open*pn,连到公司(国内)的内网网段上,PC 创建有"TAP-Win32 Adapter V9"这个网络适配器,这个是不能去改变”有或者无“的前提,但允许去改变这个适配器的参数。。。
代码里用了 request-html 这个已经过时的库(这个一时间无法改变)
情况:
如果 TAP 适配器 enable 了,request-html 去获取网页,是 Timeout,tcp closed 的。
( by the way:这个pn 并不推送 0.0.0.0 的路由给本地,只是推送了公司内部网段的路由过来,所以 PC 机的路由 0/0,基本上还是全往本地网关走,而不是全走公司pn 了)
如果把 net stop Open*PNService,关闭了服务,
request-html 一切正常
所以基本上能判断,pycharm 写的 python,肯定是首选了 TAP 适配器走流量, 尽管我尝试了这个方法把 TAP 设备调整到最后了,但依然情况依旧 http://www.xitongcheng.com/jiaocheng/win7_article_46610.html
所以现在开着*PN,就无法进行 python 做 request-html 操作了, 请教大家,这个问题如何解决?
这个是 WIN7 系统调整的问题
还是 request-html 的网络接口机制问题?
1
chinawrj 2020-05-12 19:04:20 +08:00
通信时 bind 了 TAP 的 IP 地址?用 0.0.0.0 试试
|
2
1462326016 2020-05-13 09:32:09 +08:00
也许你可以尝试修改本地路由,让你想访问的地址走本地适配器。
我之前尝试过同事了连接两个适配器,一个内网,一个外网,调整了本地路由就可以了。 仅供参考 |
3
ghostwwg 2020-05-13 10:06:10 +08:00
看着感觉像是 open*** 拨号后修改了默认路由。拨号后默认流量走哪里?
|
5
julyclyde 2020-05-13 12:20:28 +08:00
“肯定是”这话可不能随便说
建议你抓包验证一下 |
6
qazwsxkevin OP 谢谢各位大佬热心解答~
问题已经得到解决,是 pyppeteer 的问题,根据 https://github.com/psf/requests-html/issues/278#issuecomment-476950656 这个答案,增加\pyppeteer\launcher.py 的 108,109 行 ``` #add following two lines '--proxy-server="direct://"', '--proxy-bypass-list=*' ``` 问题彻底解决! 应该是 pyppeteer 自身缺陷的问题,时间水平所限,搞不懂机制的原理,解决问题就这样了,赶紧上车赶路才是正事 |