4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Goutteを利用したスクレイピング メモ

Last updated at Posted at 2017-06-23

##goutteを利用してwebスクレイピングをしてみた

goutte初心者なので、動作確認的なphpスクリプトを作成した。
最初のフォームを取得して、その後、ログインして取得したHTMLを画面に表示させます。URLはダミーです。

#スクレイプするhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>管理ログイン「管理者用」</title>
</head>
<body>
<center>
ログイン認証
<table border="0" cellpadding="2" cellspacing="1" bgcolor="#FF6600" class="f12m">
<form method="post" action="auth.php">
  <tr>
    <td align="center" bgcolor="#FFFFFF">PASS</td>
    <td align="left" bgcolor="#FFFFFF"><input name="login_pass" type="text" value="" size="28"></td>
  </tr>
  <tr>
    <td colspan="2" align="center" bgcolor="#FFFFFF">
	  <input type="submit" value="ログイン">	</td>
    </tr>
<input name="login_id" type="hidden" value="admin_pass">
</form>
</table>
</center>
</body>
</html>

#スクレイプコード(php)

<?php
require_once 'goutte.phar';

use Goutte\Client;

// 1Goutteオブジェクトの生成
$client = new Client();

// UserAgentを"MyCrawler 1.0"に設定
$client->setHeader('User-Agent', 'MyCrawler 1.0');
// 
//テストURL管理画面(PC)

$jump_url = "http://test.com/p/admin/auth.php"; 
//echo "JUMP URL -> ".$jump_url."<br>";
$crawler = $client->request('GET',  $jump_url);
echo "URL GET STATUS=" . $client->getResponse()->getStatus();
echo $crawler->html();
// 最初のフォームを選択する 
$loginform = $crawler->filter('form')->form();
//ログインIDとパスワードを入力します
$loginform['login_id'] = 'xxxx';
$loginform['login_pass'] = 'xxxxx';
//ログインフォームにログイン
$crawler = $client->submit($loginform);
//echo "URL GET STATUS=" . $crawler->getValues();
echo $crawler->html();
//ログイン後のタイトル表示
echo $crawler->filter('title')->text();
// 「ここをクリック」をクリックしてリンク先に遷移
$client->click($crawler->selectLink('TOP')->link());

?>
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?