【问题标题】:Grab Data From Remote page HTML <a> tag从远程页面 HTML <a> 标记中获取数据
【发布时间】:2015-08-15 09:01:38
【问题描述】:

您好,我有一个小问题需要尽快解决。

我是 xbmc/kodi 平台插件的所有者,我编写了一个 php 后端来帮助我查找和添加内容,但是我在从我使用的站点之一获取数据时遇到问题

在网站上有一个来自这个链接的链接,我需要从标题属性中获取 href 和一些文本

我可以抓取页面上的所有链接并扔掉它们并获取我想要的链接然后我可以获取 herf 属性但我遇到的问题是获取标题属性并从中获取我需要的文本

链接的html代码如下

    <a title="Stream AMC- waliing dead Episode 12 No Ads and easy on - EasyPlayer" target="_blank" rel="nofollow" href="example.com/watch.php?id=64">EasyPlayer!</a>

从这个链接我可以获取href,但不能获取标题或我需要的文本

我需要的唯一文字是(AMC-行尸走肉)这是动态的,并且会随着我加载的每个页面而改变

有人可以帮忙吗?我将在下面发布我目前拥有的代码

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $url = $_POST['url'];
   $fanart = "http://feelgrafix.com/data_images/out/1/736215-anime-wallpaper.jpg";
   $anime_thumbnail = "http://www.apkdad.com/wp-content/uploads/2013/01/Anime-Wallpapers-HD-Icon.png";
   $plot = "Anime System by MetaBox HD IPTV";

   $input = @file_get_contents($url) or die("Could not access file: $url");

  $dom = new DOMDocument;
  @$dom->loadHTML($input);

  foreach($dom->getElementsByTagName('a') as $node) {

  if(strpos($node->getAttribute('title'),'- EasyMode') !== false) {

  $expires = preg_split('/Episode|episode/',$node->getAttribute('title'));
   array_shift($expires);

  $stream_url = $node->getAttribute('href');
  $title_edit = str_replace(" Anime Series", "", $node->getAttribute('title'));
   $title = str_replace("Watch ", "", $title_edit);

   }
   print_r($expires);
  }
 }

我需要 $anime_url 的输出作为 herf 属性

我需要 $title 的输出是我需要的来自 title 属性的文本

感谢任何可以提供帮助的人

【问题讨论】:

  • 我建议使用 http:// 或 https:// 开始所有锚点,以避免出现任何问题。并非所有设备都能理解没有指定协议的 url。
  • 你怎么知道你需要标题的哪一部分?如果您可以定义一个模式,那么为此编译一些正则表达式可能会更容易。哪些部分总是出现,哪些部分是动态的?
  • 嗨,感谢 cmets,我在工作后自己完成了 :)

标签: php html regex dom


【解决方案1】:

我自己解决了这个问题

通过查看视频流的标题,即使是动态的,我也注意到有两个单词之一会以各种方式出现

没有和|剧集

然后我简单地使用explode函数将字符串拆分为第一个单词,然后使用replace函数删除剩余的单词(流)

运行完整的东西抛出了一个安全功能来删除所有的html标签和特殊字符

现在完美运行:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多