如何用PHP中的curl获取百度地图上的数据

如何用PHP中的curl获取百度地图上的数据,第1张

如何在页面中调用百度地图,直接在你想要插入的页面上调用百度地图代码即可

百度地图调用API地址:>

背景:最近高可用测试,双机倒换后,需要统计多久倒换结束了。我的方法是通过业务来测试,客户端和服务端都能正常访问了,对外提供服务的能力肯定就提供了。

因为不知道什么时候倒换开始和结束,需要每一秒都发curl请求,然后统计每次调用接口的时间和响应结果,并根据响应结果写入文件,方便统计和分析测试结果。

我选择简单的shell脚本,上手快。Python的话需要环境上安装相应软件,请求的响应更容易处理更便于处理。本文选择shell,curl来发请求。

1) #! /bin/bash

# 指脚本使用/bin/bash来解释执行,#!是对脚本的解释器程序路径。标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性 (如let等命令, 但#!/bin/bash可以)。

2) while循环的格式

while expression

do

command

command

```

done

或while [条件判断式]

do

程序

done

举例:计数器控制的while循环

#!/bin/bash

int=1

while [ $int<=5 ]

do

    echo $int

    let "int++"

done

3) if判断

if [ 条件判断一 ] && (||) [ 条件判断二 ]; then

elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then

else

  执行第三段内容程式

fi

4) curl

curl -I -s --connect-timeout 5 -m 5 -w "%{>

使用PHP的cURL库可以简单和有效地去抓网页 你只需要运行一个脚本 然后分析一下你所抓取的网页 然后就可以以程序的方式得到你想要的数据了 无论是你想从从一个链接上取部分数据 或是取一个XML文件并把其导入数据库 那怕就是简单的获取网页内容 cURL 是一个功能强大的PHP库 本文主要讲述如果使用这个PHP库

启用 cURL 设置

首先 我们得先要确定我们的PHP是否开启了这个库 你可以通过使用php_info()函数来得到这一信息

﹤phpphpinfo();﹥

如果你可以在网页上看到下面的输出 那么表示cURL库已被开启

如果你看到的话 那么你需要设置你的PHP并开启这个库 如果你是在Windows平台下 那么非常简单 你需要改一改你的php ini文件的设置 找到php_curl dll 并取消前面的分号注释就行了 如下所示

//取消下在的注释extension=php_curl dll

如果你是在Linux下面 那么 你需要重新编译你的PHP了 编辑时 你需要打开编译参数——在configure命令上加上 –with curl 参数

一个小示例

如果一切就绪 下面是一个小例程

﹤php// 初始化一个 cURL 对象$curl = curl_init();

// 设置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );

// 设置headercurl_setopt($curl CURLOPT_HEADER );

// 设置cURL 参数 要求结果保存到字符串中还是输出到屏幕上 curl_setopt($curl CURLOPT_RETURNTRANSFER );

// 运行cURL 请求网页$data = curl_exec($curl);

// 关闭URL请求curl_close($curl);

// 显示获得的数据var_dump($data);

  如何POST数据

上面是抓取网页的代码 下面则是向某个网页POST数据 假设我们有一个处理表单的网址// example /sendSMS php 其可以接受两个表单域 一个是电话号码 一个是短信内容

﹤php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) &MESSAGE= urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);﹥

从上面的程序我们可以看到 使用CURLOPT_POST设置>

我认为和ip地址有关,bing可能根据数据库里的ip对应的地理位置来判断地区。你可以清除cookie后挂个国外代理试试。

我的测试结果(测试goagent搜索):

本地(国内ip)

搜索结果被限制了,只有72条

立陶宛ip:

可以看出语言也变成了立陶宛(Lithuanian)的语言了,搜索结果为179,000条

立陶宛ip(将headers添加中文语言限制):

————————————————————华丽分割:

如果有先用本地ip访问后的cookie保留着,再用国外的ip访问:

结果立马增加到了386,000条

结论:

地区判断应该与ip地址(数据内是否收录也有关系)有关--用于法律限制,而搜索结果与henders和cookie里面的语言和地区有关。

本文承接上面两篇,本篇中的示例要调用到前两篇中的函数,做一个简单的URL采集。一般php采集网络数据会用file_get_contents、file和cURL。不过据说cURL会比file_get_contents、file更快更专业,更适合采集。今天就试试用cURL来获取网页上的所有链接。示例如下:

<php

/

使用curl 采集hao123com下的所有链接。

/

include_once('functionphp');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '>

以上就是关于如何用PHP中的curl获取百度地图上的数据全部的内容,包括:如何用PHP中的curl获取百度地图上的数据、求CURL获取JAVASCRIPT生成动态内容的方法 - 技术问答、怎么判断curl调用接口返回成功:响应码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9312539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存