0

我需要抓取这个网站,
这里是链接 makemytrip

你们中的任何人都可以指导我或给出一些提示如何在 php 中抓取它吗?

4

1 回答 1

0

遵循以下方法:

要扫描的页面

  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
  <head> <title>This is the Title</title> 
<meta name="description" content="Meta Description" /> 
<meta name="keywords" content="Meta Keywords" /> 
    </head> 
  <body> 
   <ul>
<li><a href="link1.html">Link 1</a></li>
<li><a href="link2.html">Link 2</a></li>
<li><a href="link3.html">Link 3</a></li>
<li><a href="link4.html">Link 4</a></li>
<li><a href="link5.html">Link 5</a></li>
   </ul>
  </div> 
  </body>  

刮法

  <?php 
  $file_string = file_get_contents('page_to_scrape');
  preg_match('/<title>(.*)<\/title>/i', $file_string, $title);
  $title_out = $title[1];
  preg_match('/<meta name="keywords" content="(.*)" \/> /i', $file_string, $keywords);
  $keywords_out = $keywords[1];
  preg_match('/<meta name="description" content="(.*)" \/> /i', $file_string, $description);
  $description_out = $description[1];
  preg_match_all('/<li><a href="(.*)">(.*)<\/a><\/li>/i', $file_string, $links);
   ?>

   <p><strong>Title:</strong> <?php echo $title_out; ?></p>
   <p><strong>Keywords:</strong> <?php echo $keywords_out; ?></p>
   <p><strong>Description:</strong> <?php echo $description_out; ?></p>
    <p><strong>Links:</strong> <em>(Name - Link)</em><br />
    <?php
echo '<ol>';
for($i = 0; $i < count($links[1]); $i++) {
    echo '<li>' . $links[2][$i] . ' - ' . $links[1][$i] . '</li>';
}
echo '</ol>';
    ?>
    </p>
于 2012-07-11T06:24:34.157 回答