是这样的,心血来潮研究一下 node 爬虫,其中用到了 cheerio 模块,楼主工作用的电脑是 Mac,这个模块用在 Mac 上非常顺手,但是我在我自己的服务器上用,同样的代码,同样的版本,windows server 2008 r2 完全用不了,打印出来的东西不知道是什么鬼东西,求助一下,求大佬解惑
1
LengthMin 2018-09-06 11:29:47 +08:00
iconv 试一下
ps: 我之前有一次读出来中文汉字全是问号, 后面把 Header 里面的 Host 去掉又能正常读取汉字了... |
2
wxsm 2018-09-06 11:39:48 +08:00
这么说不太好分析,建议贴出具体问题,执行 log 等
|
3
lwd219 OP @LengthMin 不是编码的问题,是在 Windows server 2012 上出来的结果跟 mac 上结果完全不一样,在 Mac 上可以使用 jquery 语句一层一层往下找,结构很清晰,比如 $('body').find('.list') 在 mac 上很完美,在 win 下就可能返回 length:0
|
4
Trim21 2018-09-06 11:41:12 +08:00 via Android
服务器返回的 HTML 相同吗…
|
5
realkenshinji 2018-09-06 11:47:46 +08:00 via iPhone
日志不贴,response 不贴,你让人家怎么帮你?
|
6
cctv1005s927 2018-09-06 11:52:05 +08:00
@realkenshinji +1
|
7
FakeLeung 2018-09-06 11:53:12 +08:00
先确定返回的数据是否一致先?说不定人家屏蔽了 xx 云的 ip 呢。
|
8
lwd219 OP @Trim21 我能说结构完全不一样,同样一句$("body") win 下返回的一大串 json,都不敢一个个往下找,mac 直接就出来了
|
9
lovedebug 2018-09-06 12:22:29 +08:00
node 依赖的底层在 win 上本来就和 linux 不一样
|
10
lovedebug 2018-09-06 12:22:50 +08:00
应该时和 Mac 不一样
|
11
lwd219 OP 各位大佬,原因找到了,是 URL 的问题,有些网页在 Mac 上的地址和 win 上的地址不一样,在 Mac 上能打开,但是在 win 上就打不开
|
12
zhengjian 2018-09-06 12:46:27 +08:00
很多通过 UA 判断的啊
|
13
lwd219 OP 再提一句,服务器打不开是因为被他们网站的反爬虫屏蔽了 IP
|
14
binaryify 2018-10-02 14:01:03 +08:00
模拟下 UA
|