JSDom在Heroku和本地进行不同的分析(JSDom analyze differently on Heroku and in local)

编程入门 行业动态 更新时间:2024-10-22 21:39:35
JSDom在Heroku和本地进行不同的分析(JSDom analyze differently on Heroku and in local)

我有些奇怪的东西。 我想在网页上获得一些信息( 例如这个 )。 当我从当地进行测试时,没有问题,我得到了我想要的所有细节。

但是当我将脚本推送到heroku时,jsom只提供了一个完全空白的页面,没有任何DOM insisde,所以没有数据。 我不明白为什么。

这里是package.json的主要部分:

{ "engines": { "node": "5.8.0", "npm": "3.7.3" }, "dependencies": { "co": "4.6.0", "co-body": "2.0.0", "co-pg": "1.3.1", "jsdom": "9.12.0", "koa": "0.21.0", "koa-bodyparser": "2.0.0", "koa-logger": "1.3.1" }, "devDependencies": { } }

以下是我如何从jsdom创建请求:

jsdom.env({ url: 'https://www.manomano.fr/perceuse/perceuse-visseuse-makita-18-v-li-ion-4-ah-d-13-mm-90249', userAgent : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36', scripts: [], done: function (err, window) { // err is null, on local or on prod on Heroku /** * Concerning window : * * In production * window.document.querySelector('body').innerHTML === '' * * In local * I got the whole HTML as * I can have navigating with my browser. **/ } });

我尝试了使用或不使用useragent属性。 还有“古典”号召:

jsdom.env('https://www.manomano.fr/perceuse/perceuse-visseuse-makita-18-v-li-ion-4-ah-d-13-mm-90249', [same options], [sameCallback]);

有什么想法发生了什么? 当然,关于heroku的日志里没有更多的信息.​​.....我现在完全停留在这个问题上。 我在其他网站做同样的应用程序(真的是一样的,不只是一个克隆/叉),没有问题,没有区别prod heroku和我的本地。

在此先感谢大家和任何想法!

I've something really weird. I want to get some info on a webpage (this one for example). When I test from my local, no problem, I get all the details I want.

But when I push my script to heroku, jsom provides me only a completely blank page without any DOM insisde, so no data. I don't understand why.

Here is the main parts of package.json :

{ "engines": { "node": "5.8.0", "npm": "3.7.3" }, "dependencies": { "co": "4.6.0", "co-body": "2.0.0", "co-pg": "1.3.1", "jsdom": "9.12.0", "koa": "0.21.0", "koa-bodyparser": "2.0.0", "koa-logger": "1.3.1" }, "devDependencies": { } }

And here is how I create the request from jsdom :

jsdom.env({ url: 'https://www.manomano.fr/perceuse/perceuse-visseuse-makita-18-v-li-ion-4-ah-d-13-mm-90249', userAgent : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36', scripts: [], done: function (err, window) { // err is null, on local or on prod on Heroku /** * Concerning window : * * In production * window.document.querySelector('body').innerHTML === '' * * In local * I got the whole HTML as * I can have navigating with my browser. **/ } });

I have tried with or without the useragent property. And trid too with the "classical" call :

jsdom.env('https://www.manomano.fr/perceuse/perceuse-visseuse-makita-18-v-li-ion-4-ah-d-13-mm-90249', [same options], [sameCallback]);

Any idea on what's happening ? Off course, there is no more info in logs on heroku... I'm completely stuck on this problem for the moment. I do similar thinks in the same app (really the same, not just a clone/fork) with other websites and no problem, no differences between prod heroku and my local.

Thanks in advance to everybody and any idea !

最满意答案

有关站点阻止机器人,JSDom无罪。 对不起打扰 ;)

The site concerned block robots so, JSDom is not guilty. Sorry for disturbing ;)

更多推荐

本文发布于:2023-08-07 19:47:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1465984.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Heroku   JSDom   analyze   local   differently

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!