切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
PHP初学练习——对豆瓣的中转搜索[复制链接]
发表于 2013-5-22 13:31:13 | 显示全部楼层 |!read_mode!
前两天练习用PHP发包取数据,就以豆瓣的找书为例,要求是从我的页面搜索,然后返回书名和副书名。
前端douban.html:
<html>
<title>
豆瓣查书测试
</title>
<head>
</head>
<body>
豆瓣查书<br />
<form method="post" action="/get.php">
	<p>请输入你要查的书:<input type="text" name="search" /></p>
<input type="submit" id="su" value="搜索" />
</form>
</body>
</html>


本来以为是post的,没想到是get的,get的话好像不该用curl这么麻烦了。
我的想法是发包然后对返回的页面用正则给匹配出关键的信息。

后端get.php:
<?php
$ch = curl_init();               //CURL初始化
curl_setopt($ch,CURLOPT_URL,"http://book.douban.com/subject_search?search_text=".$_POST["search"]."&cat=1001");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);          //执行curl结果保存
curl_close($ch);
$pattern = "/;>([\d\D]*?)<\/span>/";          //正则匹配模式
$max = preg_match_all($pattern,$result,$matches);    
for ($i=0;$i<=$max-1;$i++)                         //加标示符
	{
	$matches[1][$i] = $matches[1][$i]."<br>";
	}
for ($i=0;$i<=$max-1;$i++)                        //替换掉副标题和下一主标题间的内容和多出来的一个标示符
	{
	$output = str_replace("<br>","",preg_replace("/<\/a>([\D\d]*?<br>)/","",$matches[1][$i])."<br />");
	$output = str_replace("<span style=\"font-size:12px;\">","",$output);
	$output = str_replace("\n\n\n","",$output);
	$output = str_replace("\n","",$output);
	$output = str_replace("      ","",$output);
	$output = str_replace("     ","",$output);
	echo trim($output);
	}
?>


这样只能显示出第一页的搜索结果,觉得也不该这么麻烦,是不是方法不太对呢?请拍砖

发表于 2013-5-22 18:05:12 | 显示全部楼层
留位...待编辑....

代码区

GMT+8, 2019-12-14 10:25

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部