大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一步 、申请一个GOOGLE地图的KEY
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、茌平网站维护、网站推广。
1、根据地址获取经纬度
[java] view plain copy print?
public static void getGoogleLatLng() {
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
// 创建httpget.
HttpGet httpget = new HttpGet("上海市sensor=falsekey=");
logger.debug("executing request " + httpget.getURI());
// 执行get请求.
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// 获取响应实体
HttpEntity entity = response.getEntity();
logger.debug("--------------------------------------");
// 打印响应状态
System.out.println(response.getStatusLine());
if (entity != null) {
// 打印响应内容
String str = EntityUtils.toString(entity);
JSONObject o = (JSONObject) JSON.parse(str);
JSONArray o2 = (JSONArray) o.get("results");
JSONObject o3 = (JSONObject) o2.get(0);
JSONObject o4 = (JSONObject) o3.get("geometry");
JSONObject o5 = (JSONObject)o4.get("location");
logger.debug("lat===="+o5.get("lat")+";lng====="+o5.get("lng"));
}
logger.debug("------------------------------------");
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} catch (ParseException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
logger.debug(e.getMessage());
}
}
}
2、根据经纬度获取地址信息
[java] view plain copy print?
public static String getGoogleAddres(BigDecimal lat, BigDecimal lng) {
String addr = "";
if(null == lat || null == lng){
return addr;
}
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
// 创建httpget.
HttpGet httpget = new HttpGet(MessageFormat.format("{0},{1}sensor=falselanguage=zh-CNkey=", lat, lng));
logger.debug("executing request " + httpget.getURI());
// 执行get请求.
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// 获取响应实体
HttpEntity entity = response.getEntity();
logger.debug("--------------------------------------");
// 打印响应状态
System.out.println(response.getStatusLine());
if (entity != null) {
// 打印响应内容
String str = EntityUtils.toString(entity);
JSONObject o = (JSONObject) JSON.parse(str);
JSONArray o1 = (JSONArray)o.get("results");
JSONObject o2 = (JSONObject)o1.get(0);
if(null != o2){
addr = String.valueOf(o2.get("formatted_address"));
logger.debug("详细地址===="+addr);
JSONArray o3 = (JSONArray)o2.get("addressComponent");
logger.debug("地址明细===="+JSONArray.toJSONString(o3));
}
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} catch (ParseException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
logger.debug(e.getMessage());
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
logger.debug(e.getMessage());
}
}
return addr;
}
模拟一个请求不就行了么.
引入httpclient或者模拟httpurlconnection发送一条 get请求就行了
比如;safe=strictq=你要搜索的字符串
然后读取返回结果就是搜索的结果html。
再引入jsoup等解析网页jar包或者用正则匹配出搜索结果list就行了。
估计你是想伪造一个请求身份,这种操作不好说,因为如果你是用本地的浏览器访问的页面,那么你的浏览器是有一个解析的过程的。接收端分析你的请求并根据浏览器特性生成特定的页面,如样式兼容。
但是一般请求返回来的内容结果这个是固定的。样式的不同或是其他展现的不同是返回来的内容根据你的浏览器生成的。这种情况下你只能得到原始的页面后台代码。所以要达到这种要求,其实不合理。
1、首先你得安装chrome driver
2、然后在你的代码中先导入webdriver:from selenium import webdriver
3、在代码中添加driver = webdriver.Chrome(),这样既可以打开chrome
4、语句driver.get('url'),可以在chrome中打开url对应的网址