发现一个很奇怪的问题, cheerio 在 window 和 mac 结果完全不一样

2018-09-06 11:23:24 +08:00
 lwd219

是这样的,心血来潮研究一下 node 爬虫,其中用到了 cheerio 模块,楼主工作用的电脑是 Mac,这个模块用在 Mac 上非常顺手,但是我在我自己的服务器上用,同样的代码,同样的版本,windows server 2008 r2 完全用不了,打印出来的东西不知道是什么鬼东西,求助一下,求大佬解惑

3631 次点击
所在节点    Node.js
14 条回复
LengthMin
2018-09-06 11:29:47 +08:00
iconv 试一下
ps: 我之前有一次读出来中文汉字全是问号, 后面把 Header 里面的 Host 去掉又能正常读取汉字了...
wxsm
2018-09-06 11:39:48 +08:00
这么说不太好分析,建议贴出具体问题,执行 log 等
lwd219
2018-09-06 11:40:12 +08:00
@LengthMin 不是编码的问题,是在 Windows server 2012 上出来的结果跟 mac 上结果完全不一样,在 Mac 上可以使用 jquery 语句一层一层往下找,结构很清晰,比如 $('body').find('.list') 在 mac 上很完美,在 win 下就可能返回 length:0
Trim21
2018-09-06 11:41:12 +08:00
服务器返回的 HTML 相同吗…
realkenshinji
2018-09-06 11:47:46 +08:00
日志不贴,response 不贴,你让人家怎么帮你?
cctv1005s927
2018-09-06 11:52:05 +08:00
FakeLeung
2018-09-06 11:53:12 +08:00
先确定返回的数据是否一致先?说不定人家屏蔽了 xx 云的 ip 呢。
lwd219
2018-09-06 11:58:07 +08:00
@Trim21 我能说结构完全不一样,同样一句$("body") win 下返回的一大串 json,都不敢一个个往下找,mac 直接就出来了
lovedebug
2018-09-06 12:22:29 +08:00
node 依赖的底层在 win 上本来就和 linux 不一样
lovedebug
2018-09-06 12:22:50 +08:00
应该时和 Mac 不一样
lwd219
2018-09-06 12:38:50 +08:00
各位大佬,原因找到了,是 URL 的问题,有些网页在 Mac 上的地址和 win 上的地址不一样,在 Mac 上能打开,但是在 win 上就打不开
zhengjian
2018-09-06 12:46:27 +08:00
很多通过 UA 判断的啊
lwd219
2018-09-06 13:54:59 +08:00
再提一句,服务器打不开是因为被他们网站的反爬虫屏蔽了 IP
binaryify
2018-10-02 14:01:03 +08:00
模拟下 UA

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX