这几天研究了一下php中的curl类库,做了一个简单的百度搜索,先上代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
< div style = "width:200px;height:100px;" > < div >百度搜索</ div > < form action = "" method = "get" > < input type = "text" name = "key" > < input type = "submit" value = "搜索" > </ form > </ div > <? php $ k = '' ; $k = !empty($_GET['key'])?$_GET['key']:''; session_start(); $_SESSION['key'] = $k; $ curl = curl_init (); // 设置你需要抓取的URL for($ i = 0 ;$i<2;$i++){ curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com/s?wd={$_SESSION['key']}&pn={$i}"); // 设置header curl_setopt($curl, CURLOPT_HEADER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 运行cURL,请求网页 $ data = curl_exec ($curl); $pre = '/<h3 class = "t" >< a. *? href = "(.*?)" .*? target = "_blank" .*?>(.*?)<\/a><\/h3>/s'; preg_match_all($pre,$data,$match); foreach ($match[1] as $k => $v) { ?> < div style = "font-size:20px;color:red;" > < a href="<?php echo $v;?>" target="_blank"><? php echo strip_tags($match[2][$k]);?></ a > </ div > <? php } } curl_close($curl); ?> |
经过分析百度的搜索时的url发现有一个规律
https://www.baidu.com/s?wd=搜索的关键字
但是我发现使用https协议后不能够获得百度上的数据于是改为http://www.baidu.com?wd=搜索的关键字就可以啦!!
效果图如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。