当前位置: 首页 > news >正文

唐山网站建设哪家好互联网企业投诉服务平台

唐山网站建设哪家好,互联网企业投诉服务平台,微信小程序制作软件哪个好,网站优化怎样的Foundations of Python Network Programing#xff0c;Third Edition 《python网络编程》#xff0c;本书中的代码可在Github上搜索fopnp下载本书的第一章中使用到了google地图的api来获取一个地址的经度和纬度#xff0c;因为众所周知的原因会出现无法访问#xff0c;我们…Foundations of Python Network ProgramingThird Edition 《python网络编程》本书中的代码可在Github上搜索fopnp下载本书的第一章中使用到了google地图的api来获取一个地址的经度和纬度因为众所周知的原因会出现无法访问我们需要使用代理访问因此书上的代码需要根据实际情况来修改我的电脑的代理地址为127.0.0.1:1080下面放我的代码吧可根据自己电脑的代理设置进行修改。运行环境Windows 10,Anaconda3,python3.6.3,Pycharm Edu 2017.3调用库#search1.pyfrom pygeocoder importGeocoderif __name__ __main__:aGeocoder()a.proxy 127.0.0.1:1080address 207 N. Definace St,Archbold,OHprint(a.geocode(address)[0].coordinates)这里使用的是Geocoder中的proxy参数设置代理(需要先使用pip安装pygeocoder)因此必须先实例化不能像书中一样直接print应用层#search2.pyimportrequestsproxies {http: http://127.0.0.1:1080, https: http://127.0.0.1:1080, }defgeocode(address):parameters {address: address, sensor: falise}base http://maps.googleapis.com/maps/api/geocode/jsonresponse requests.get(base, paramsparameters, proxiesproxies)answerresponse.json()print(answer[results][0][geometry][location])if __name__ __main__:geocode(207 N. Defiance St,Archbold, OH)这里使用了requests中的proxies参数设置代理使用HTTP协议#search3.pyimporthttp.clientimportjsonfrom urllib.parse importquote_plusbase /maps/api/geocode/jsondefgeocode(address):path {}?address{}sensorfalse.format(base, quote_plus(address))connection http.client.HTTPSConnection(127.0.0.1, 1080)connection.set_tunnel(map.google.com)connection.request(GET, path)rawreplyconnection.getresponse().read()reply json.loads(rawreply.decode(utf-8))print(reply[results][0][geometry][location])if __name__ __main__:geocode(207 N. Defiance St,Archbold, OH)这里会提示Traceback (most recent call last):FileE:/Learn Python/Python网络编程/search3.py, line 21, in geocode(207 N. Defiance St,Archbold, OH)FileE:/Learn Python/Python网络编程/search3.py, line 16, ingeocodereply json.loads(rawreply.decode(utf-8))FileD:\Anaconda3\lib\json\__init__.py, line 354, inloadsreturn_default_decoder.decode(s)FileD:\Anaconda3\lib\json\decoder.py, line 339, indecodeobj, end self.raw_decode(s, idx_w(s, 0).end())FileD:\Anaconda3\lib\json\decoder.py, line 357, inraw_decoderaise JSONDecodeError(Expecting value, s, err.value) fromNonejson.decoder.JSONDecodeError: Expecting value: line1 column 1 (char 0)Process finished with exit code 1很明显报了一个json.decoder.JSONDecodeError的错误 说明没有能够正确访问json decode失败print(rawreply)发现rawreply返回的是这样的html文件b\n301 Moved\n301 Moved\nThe document has moved\nhere.\r\n\r\n返回了一个301错误说明需要重定向这里我们使用的是HTTPS协议因此不会像浏览器一样直接重定向感觉应该是google反爬虫的一种行为因此我们使用正则表达式提取字符串(方法来自https://www.cnblogs.com/rj81/p/5933838.html)更改后代码如下#search3.pyimporthttp.clientimportjsonfrom urllib.parse importquote_plusimportrebase /maps/api/geocode/jsondefgeocode(address):path {}?address{}sensorfalse.format(base, quote_plus(address))connection http.client.HTTPSConnection(127.0.0.1, 1080)connection.set_tunnel(map.google.com)connection.request(GET, path)rawreplyconnection.getresponse().read().decode()newweb re.findall(rHREF\(.?)\, stringrawreply)#print(newweb)connection.request(GET, newweb[0])rawreplyconnection.getresponse().read()#print(path)#print(rawreply)reply json.loads(rawreply.decode(utf-8))print(reply[results][0][geometry][location])if __name__ __main__:geocode(207 N. Defiance St, Archbold, OH)即可正确输出结果{lat: 41.5219645, lng: -84.3066496}Process finished with exit code 0这里需要注意的是 我一开始以为newweb是一个str直接使用了connection.request(GET, newweb)结果发现AttributeError: list object has no attribute startswith的错误更改之后即可正常输出直接使用Socket与谷歌地图通信设置代理的方法(转自http://www.jb51.net/article/50510.htm)urllib2proxy_handler urllib2.ProxyHandler({http : http://地址:端口})openerurllib2.build_opener(proxy_handler, urllib2.HTTPHandler)urllib2.install_opener(opener)socketimportsocks, socketsocks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,地址, 端口)socket.socket socks.socksocket代码如下#search4.py#!/usr/bin/env python3importsocketimportsocksfrom urllib.parse importquote_plusrequest_text \GET /maps/api/geocode/json?address{}sensorfalse HTTP/1.1\r\n\Host: maps.google.com:80\r\n\User-Agent: search4.py (Foundations of Python Network Programming)\r\n\Connection: close\r\n\\r\n\defgeocode(address):socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5,127.0.0.1, 1080)socket.socketsocks.socksocketsocksocket.socket()sock.connect((maps.google.com, 80))requestrequest_text.format(quote_plus(address))sock.sendall(request.encode(ascii))raw_reply bwhileTrue:more sock.recv(4096)if notmore:breakraw_replymoreprint(raw_reply.decode(utf-8))if __name__ __main__:geocode(207 N. Defiance St, Archbold, OH)运行输出HTTP/1.1 200OKContent-Type: application/json; charsetUTF-8Date: Fri,12 Jan 2018 07:21:20GMTExpires: Sat,13 Jan 2018 07:21:20GMTCache-Control: public, max-age86400Access-Control-Allow-Origin: *Server: mafeX-XSS-Protection: 1; modeblockX-Frame-Options: SAMEORIGINAccept-Ranges: noneVary: Accept-Language,Accept-EncodingConnection: close{results: [{address_components: [{long_name : 207,short_name : 207,types : [ street_number]},{long_name : North Defiance Street,short_name : N Defiance St,types : [ route]},{long_name : Archbold,short_name : Archbold,types : [ locality, political]},{long_name : German Township,short_name : German Township,types : [ administrative_area_level_3, political]},{long_name : Fulton County,short_name : Fulton County,types : [ administrative_area_level_2, political]},{long_name : Ohio,short_name : OH,types : [ administrative_area_level_1, political]},{long_name : United States,short_name : US,types : [ country, political]},{long_name : 43502,short_name : 43502,types : [ postal_code]},{long_name : 1160,short_name : 1160,types : [ postal_code_suffix]}],formatted_address : 207 N Defiance St, Archbold, OH 43502, USA,geometry: {bounds: {northeast: {lat : 41.521994,lng : -84.30646179999999},southwest: {lat : 41.521935,lng : -84.30683739999999}},location: {lat : 41.5219645,lng : -84.3066496},location_type : ROOFTOP,viewport: {northeast: {lat : 41.5233134802915,lng : -84.30530061970849},southwest: {lat : 41.5206155197085,lng : -84.3079985802915}}},place_id : ChIJk4BHnIy0PYgRXbKj5GjFe_U,types : [ premise]}],status : OK}Process finished with exit code0
http://www.sadfv.cn/news/285240/

相关文章:

  • 网站开发一般包括广告视频
  • 上海建站优化做网站如何收费
  • 广东seo网站优化公司凡科快图官网登录入口
  • 小程序与手机网站区别多少钱算有钱
  • 摄影网站设计理念网络服务器无响应
  • 沁水做网站wordpress换了ip
  • 学校官方网站网页设计网站建设费用预算
  • wordpress上次附件郴州网站优化
  • 一级a做爰全过程网站口碑营销的案例及分析
  • 海淀周边网站建设直播间人气互动平台
  • 公司如何申请一个网站做教程网站犯法吗
  • 西安企业网站建设多少钱wordpress站点路径
  • 唐山高端网站建设公司教育网站开发报告
  • wordpress跳转到微信快速seo关键词优化方案
  • 商业网站策划书范文wordpress 改成动态
  • 嘉兴有能做网站优化苏州建设项目备案网站
  • 长沙网站优化步骤怎么显示wordpress里元素的源代码
  • 工程门户网站建设上海市网站制作
  • 网站管理系统设置wordpress默认图片居中
  • 潍坊网站建设报价费用wordpress标题背景设置
  • 开发网站五个阶段迅睿cms建站
  • 机械设备企业网站源码山西省建设监理协会网-官方网站
  • 无锡建设机械网站成都网站设计开发公司
  • 如何宣传自己的网站宁夏建设网站
  • 凡客的网站功能cgi做的网站
  • 400电话安装佛山营销网站建设网站广告位价格一般多少
  • 建网站的论坛网站开发和网络设计有什么区别
  • 福州网站关键词推广网站建设规划方案
  • 上哪儿找做网站酒店如何进行网络营销
  • 南昌企业网站设计公司官网站站