【问题标题】:How to replace local urls of "file_get_contents" page;如何替换“file_get_contents”页面的本地url;
【发布时间】:2019-11-18 03:37:24
【问题描述】:

由于使用iframes 加载电报页面时的限制,我使用以下代码:

file_get_contents('https://t.me/s/telegram');

但是电报会加载一些 javascript 文件并对我的服务器上不存在的本地文件进行 POST 查询。例如,Google 控制台显示以下内容未找到:

jquery.min.js:4 **POST https://example.com/v/ 404
jquery.min.js:4 POST https://example.com/s/telegram?before=93 404

你可以see it in this picture

我想要的是捕获这些查询并将它们转换为全局 URL,如下所示:

POST https://telegram.org/v/
POST https://telegram.org/s/telegram?before=some_integer

Here is an example URL 应替换为电报的 URL。

脚本应该使用电报的域,而不是我的域。非常感谢任何帮助/提示。

【问题讨论】:

  • 你的问题很不清楚。你想达到什么目的?你到底想要做什么?你遇到了什么错误?我其实玩过telegram的api,用php,我很乐意理解
  • @GuyLouzon,感谢您的关注。我只想将电报频道嵌入我的网站。如您所知,所有电报频道都有网页,也可以通过这种网址访问:t.me/s/ChannelName。当我尝试使用 php 函数 file_get_contents('https://t.me/s/telegram'); 执行此操作时,它显示的页面只有 2-3 个帖子。其他帖子没有加载。我发现他们在 telegram.org 端加载了一些 JS 脚本。但由于 php 功能,在我的情况下,页面试图从我这边加载 JS 脚本。
  • 只要尝试执行file_get_contents('https://t.me/s/telegram');,你就会明白我在说什么问题。我认为在我的情况下不需要电报的 api
  • 爬取Telegram需要什么?众所周知,他们有一个非常好的 API,抓取他们的页面可能不合法
  • @NicoHaase ,但在这种情况下,API 与我的需求不兼容。而且,如果您查看我在帖子中提到的那个链接,它的设计与电报的应用程序相似。顺便说一句,我可以说这并不违法,因为我没有违反“使用条款”的规则

标签: javascript php html telegram


【解决方案1】:

我会尝试使用 file_get_contents 加载页面 然后查找所有试图获取的文件 调用它们并将它们保存在本地,然后回显原始 url,现在所有引用都已保存,类似于下面的代码

我的代码可能并不完美,但我认为这是你应该进入的方向。查看电报频道的来源,看看如何找到 jquery POST url,并进行相应的修改

$channel = file_get_contents('https://t.me/s/telegram');
$urls = array();
$jumper = 0;
$jumper2 = 0;
$tempstr = '';
$dir = '/s/' ;

$findstr = "$.ajax: ". "\n". "url:";
while ($jumper <= strlen($channel) || 
strpos($channel, $findstr,$jumper + 1)) {
 $jumper = strpos($channel, $findstr,$jumper);
 $jumper2 = strpos($channel, ',' ,$jumper + 1);
 $urls[] = substr($channel, $jumper + 9, $jumper2 - $jumper + 10);
}

foreach ($urls as $url) {
 file_put_contents($dir . $url);
}

echo $channel;

【讨论】:

  • 拒绝在框架中显示“t.me/s/telegram”,因为它将“X-Frame-Options”设置为“sameorigin”。
  • 我添加了截图,请看一下
  • 小修复。 strpos 必须返回一个不同于零的结果。现在好了
  • 对不起,问题依旧存在,无限加载。一段时间后服务器响应错误 503
  • 我不明白,我是个不幸的人,或者对如何执行你的代码非常愚蠢。它在你这边有效,但在我这边:仍在加载...
猜你喜欢
  • 1970-01-01
  • 2021-05-08
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 2012-08-08
  • 2016-12-29
  • 2016-07-13
  • 1970-01-01
相关资源
最近更新 更多