N次元网络 2013-09-25 11:46 采纳率: 0%
浏览 893

如何抓取的·网页制定内容

如何使用js或者php抓取网页的制定元素的,制定内容?
比如有很多的

标签,我想抓取特定的,要求通过父元素的标签或class,在定位到制定的

如何写?

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-20 12:03
    关注

    该回答引用ChatGPT

    使用 JavaScript 或 PHP 可以通过 DOM 操作获取指定元素。


    下面是使用 JavaScript 获取指定元素的例子:

    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>我的网页</h1>
    
    <div class="container">
      <h2>欢迎来到我的网页</h2>
      <p>这是一些文本。</p>
      <p>这是另一些文本。</p>
    </div>
    
    <script>
      // 获取包含 class 为 container 的 div 元素
      var container = document.querySelector('.container');
    
      // 获取 container 元素下的第二个 p 元素
      var secondP = container.querySelector('p:nth-of-type(2)');
    
      // 获取 secondP 元素的文本内容
      var secondPText = secondP.textContent;
    
      // 打印 secondP 元素的文本内容
      console.log(secondPText);
    </script>
    
    </body>
    </html>
    

    在上面的例子中,使用 querySelector 方法获取包含 class 为 container 的 div 元素,然后使用 querySelector 方法获取该元素下的第二个 p 元素,并获取该元素的文本内容。


    如果要通过父元素的标签或 class 定位到指定的元素,可以使用 querySelector 或 querySelectorAll 方法,并指定相应的选择器。


    下面是使用 PHP 获取指定元素的例子:

    <?php
    $html = file_get_contents('http://example.com');
    
    // 创建 DOM 对象
    $dom = new DOMDocument;
    $dom->loadHTML($html);
    
    // 获取包含 class 为 container 的 div 元素
    $container = $dom->getElementByClassName('container');
    
    // 获取 container 元素下的第二个 p 元素
    $secondP = $container->getElementsByTagName('p')[1];
    
    // 获取 secondP 元素的文本内容
    $secondPText = $secondP->nodeValue;
    
    // 打印 secondP 元素的文本内容
    echo $secondPText;
    ?>
    

    在上面的例子中,使用 file_get_contents 函数获取指定网页的 HTML 内容,然后使用 DOMDocument 类创建 DOM 对象,并使用 getElementByClassName 方法获取包含 class 为 container 的 div 元素,然后使用 getElementsByTagName 方法获取该元素下的第二个 p 元素,并获取该元素的文本内容。

    评论

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题