精华内容
下载资源
问答
  • 项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。项目由ekCit发布在实验楼,完整教程...

    项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。项目由ekCit发布在实验楼,完整教程及在线练习地址:高德API+Python解决租房问题,可以直接在教程中下载代码使用demo。

    一、介绍

    1. 背景

    项目来自一段租房血泪史(夸张):事情是这样的,笔者是接着念大四准备考研,而室友是应届毕业在找工作,说白了就是都没有钱,于是打算合租。因为穷所以不可能找有门店的的中介,只能看看赶集、58、和一些租房APP。期间需要考虑两个人的通勤范围来选地段,由于对交通的不熟悉,只有选择自己附近的较贵的地段,花了很多时间阅览赶集或者58里的个人房源信息,然而个人房源信息中仍充斥着大量中介,抱着一点希望打了几个电话,得到的回答都是这个价位根本租不到,再高点也租不到(大都与发布的房源信息不符)。最后终于还是在宿舍关闭前一个星期租到一个性价比还可以的隔断。毕竟隔断还是不方便的,所以打算在室友找到工作后换一个新地方,于是就有了这个租房脚本和课程。

    相信也有不少的应届毕业生可能会遭遇同样的境况,希望这门课能真的帮到大家,也许不光是在租房子方面。

    总结一下租房难的症结:没钱。

    小中介发布的价位一般都是假的,会浪费你很多时间。

    对交通路线不熟悉以致于选择面窄。

    如果是多人,得同时考虑多人的通勤时间。

    本课程将解决的问题:学习了技术,增长了知识,就能找到好工作,找到好工作就能有钱。

    这次选的房源信息来自58的品牌公寓馆,所以没有那种小中介,价位就我和我室友来说可以接受。其实可以做个分类器过滤赶集上的中介来找低价个人房源的,有需要的同学可以试一下。

    通勤范围在地图上圈出,解决了对交通路线不熟悉的问题

    本课程是单人版的,但代码中只要删掉一个语句就能当多人用了(但是路径规划的功能是只能给一个人用)。如果是直接拿来多人用的话,还是开多个页面比较好。

    最终效果图如下:

    由于没做前端兼容,导致右上角崩了。自用的小工具其实也不用整多好看,效率第一。

    如图,划出来的大片蓝色色块就是距离工作地点一小时车程内的区域。蓝色的标记就是房源,点击后会自动给出路径规划和房源地址。红色标记(不是"终")是工作地点,在图里被挡住了。工作地点的输入框有自动补完的功能,也是很方便的。至于房源文件我们会通过编写Python脚本在抓取房源信息后生成。

    2. 知识点

    本课程项目完成过程中,我们将学习:requests、BeautifulSoup、csv 等库的简单使用

    高德地图 Javascript API 的使用

    二、实验环境

    打开终端,进入 Code 目录,创建 rent_proj 文件夹, 并将其作为我们的工作目录。

    $ cd Code

    $ mkdir rent_proj && cd rent_proj

    安装需要的库:

    $ sudo apt-get install python-bs4

    三、实验原理

    实验中会用到三个文件:crawl.py,rent.csv与index.html,其中rent.csv由crawl.py生成,是房源文件。crawl.py是一个非常简单的爬取网页的脚本。index.html是最重要的显示地图的部分。实现的流程大致如下:

    我为什么不把js代码和css代码从index.html中分出来呢,写脚本怎么顺手怎么来就好。

    四、效果演示

    首先选择工作地点,划出了一小时内的通勤范围:

    北京堵车太猖狂,可能还是地铁保险:

    导入房源文件后:

    选择一处房源,会自动帮你规划路径:

    选中房源地址跳转到目标页面:

    本项目的详细教程、完整代码及demo测试,可在实验楼中查看并在线完成,更多Python经典项目:Python全部 - 课程

    展开全文
  • 项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。本教程由ekCit发布在实验楼,完整...

    项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。

    本教程由ekCit发布在实验楼,完整教程及在线练习地址:高德API+Python解决租房问题,可以直接在教程中下载代码使用demo。

    一、项目介绍

    1. 项目背景

    来自一段租房血泪史(夸张):事情是这样的,笔者是接着念大四准备考研,而室友是应届毕业在找工作,说白了就是都没有钱,于是打算合租。因为穷所以不可能找有门店的的中介,只能看看赶集、58、和一些租房APP。期间需要考虑两个人的通勤范围来选地段,由于对交通的不熟悉,只有选择自己附近的较贵的地段,花了很多时间阅览赶集或者58里的个人房源信息,然而个人房源信息中仍充斥着大量中介,抱着一点希望打了几个电话,得到的回答都是这个价位根本租不到,再高点也租不到(大都与发布的房源信息不符)。最后终于还是在宿舍关闭前一个星期租到一个性价比还可以的隔断。毕竟隔断还是不方便的,所以打算在室友找到工作后换一个新地方,于是就有了这个租房脚本和课程。

    相信也有不少的应届毕业生可能会遭遇同样的境况,希望这门课能真的帮到大家,也许不光是在租房子方面。

    总结一下租房难的症结:

    没钱。

    小中介发布的价位一般都是假的,会浪费你很多时间。

    对交通路线不熟悉以致于选择面窄。

    如果是多人,得同时考虑多人的通勤时间。

    本课程将解决的问题:

    学习了技术,增长了知识,就能找到好工作,找到好工作就能有钱。

    这次选的房源信息来自58的品牌公寓馆,所以没有那种小中介,价位就我和我室友来说可以接受。其实可以做个分类器过滤赶集上的中介来找低价个人房源的,有需要的同学可以试一下。

    通勤范围在地图上圈出,解决了对交通路线不熟悉的问题

    本课程是单人版的,但代码中只要删掉一个语句就能当多人用了(但是路径规划的功能是只能给一个人用)。如果是直接拿来多人用的话,还是开多个页面比较好。

    最终效果图如下:

    由于没做前端兼容,导致右上角崩了。自用的小工具其实也不用整多好看,效率第一。

    如图,划出来的大片蓝色色块就是距离工作地点一小时车程内的区域。蓝色的标记就是房源,点击后会自动给出路径规划和房源地址。红色标记(不是"终")是工作地点,在图里被挡住了。工作地点的输入框有自动补完的功能,也是很方便的。至于房源文件我们会通过编写Python脚本在抓取房源信息后生成。

    2. 知识点

    本课程项目完成过程中,我们将学习:

    requests、BeautifulSoup、csv 等库的简单使用

    高德地图 Javascript API 的使用

    二、实验环境

    打开终端,进入 Code 目录,创建 rent_proj 文件夹, 并将其作为我们的工作目录。

    $ cd Code

    $ mkdir rent_proj && cd rent_proj

    安装需要的库:

    $ sudo apt-get install python-bs4

    三、实验原理

    实验中会用到三个文件:crawl.py,rent.csv与index.html,其中rent.csv由crawl.py生成,是房源文件。crawl.py是一个非常简单的爬取网页的脚本。index.html是最重要的显示地图的部分。实现的流程大致如下:

    我为什么不把js代码和css代码从index.html中分出来呢,写脚本怎么顺手怎么来就好。

    四、效果演示

    首先选择工作地点,划出了一小时内的通勤范围:

    北京堵车太猖狂,可能还是地铁保险:

    导入房源文件:

    选择一处房源,会自动帮你规划路径:

    选中房源地址跳转到目标页面:

    展开全文
  • 项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。一、介绍1.背景项目来自一段租房...

    项目简介:

    编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。

    一、介绍

    1.背景

    项目来自一段租房血泪史(夸张):事情是这样的,笔者是接着念大四准备考研,而室友是应届毕业在找工作,说白了就是都没有钱,于是打算合租。因为穷所以不可能找有门店的的中介,只能看看赶集、58 和一些租房APP。期间需要考虑两个人的通勤范围来选地段,由于对交通的不熟悉,只有选择自己附近的较贵的地段,花了很多时间阅览赶集或者58里的个人房源信息,然而个人房源信息中仍充斥着大量中介,抱着一点希望打了几个电话,得到的回答都是这个价位根本租不到,再高点也租不到(大都与发布的房源信息不符)。最后终于还是在宿舍关闭前一个星期租到一个性价比还可以的隔断。毕竟隔断还是不方便的,所以打算在室友找到工作后换一个新地方,于是就有了这个租房脚本和教程。(教程地址:https://www.shiyanlou.com/courses/599)

    相信也有不少的应届毕业生可能会遭遇同样的境况,希望这个教程真的能帮到大家,也许不仅是在租房方面。

    总结一下租房难的症结:

    1.没钱

    2.小中介发布的价位一般都是假的,会浪费你很多时间

    3.对交通路线不熟悉以致于选择面窄

    4.如果是多人,得同时考虑多人的通勤时间

    本教程将解决的问题:

    1.学习了技术,增长了知识,就能找到好工作,找到好工作就能有钱

    2.这次选的房源信息来自58的品牌公寓馆,所以没有那种小中介,价位就我和我室友来说可以接受。其实可以做个分类器过滤赶集上的中介来找低价个人房源的,有需要的同学可以试一下

    3.通勤范围在地图上圈出,解决了对交通路线不熟悉的问题

    4.本课程是单人版的,但代码中只要删掉一个语句就能当多人用了(但是路径规划的功能是只能给一个人用)。如果是直接拿来多人用的话,还是开多个页面比较好

    最终效果图如下:

    152bf83ba41024546f681114ebc084f0.png

    由于没做前端兼容,导致右上角崩了。自用的小工具其实也不用整多好看,效率第一。

    如图,划出来的大片蓝色色块就是距离工作地点一小时车程内的区域。蓝色的标记就是房源,点击后会自动给出路径规划和房源地址。红色标记(不是"终")是工作地点,在图里被挡住了。工作地点的输入框有自动补完的功能,也是很方便的。至于房源文件我们会通过编写Python脚本在抓取房源信息后生成。

    2. 知识点

    本教程项目完成过程中,我们将学习:

    1.requests、BeautifulSoup、csv 等库的简单使用

    2.高德地图 Javascript API 的使用

    二、实验环境

    打开终端,进入 Code 目录,创建 rent_proj 文件夹, 并将其作为我们的工作目录。

    $ cd Code

    $ mkdir rent_proj&& cd rent_proj

    安装需要的库:

    $ sudo apt-get install python-bs4

    三、实验原理

    实验中会用到三个文件:crawl.py,rent.csv与index.html,其中rent.csv由crawl.py生成,是房源文件。crawl.py是一个非常简单的爬取网页的脚本。

    index.html是最重要的显示地图的部分。实现的流程大致如下:

    4d257290a8a26a9b67deec135e60825b.png

    我为什么不把js代码和css代码从index.html中分出来呢,写脚本怎么顺手怎么来就好。

    四、效果演示

    首先选择工作地点,划出了一小时内的通勤范围:

    2ebdc7e179251a48e8e4df29a8deeaa1.png

    北京堵车太猖狂,可能还是地铁保险:

    42f31cfd58c02c60d12f041cb06aec22.png

    导入房源文件后:

    ef40d1b53a8d000db54cb13c4f2a5d25.png

    选择一处房源,会自动帮你规划路径:

    c0486007a314572ed187e0295a46ef5f.png

    选中房源地址跳转到目标页面:

    1939e95c47e1a9387328249342d52e27.png

    作者:Wayne Shi

    来源:知乎

    商业转载请联系作者获得授权,非商业转载请注明出处

    Python学习交流群:238757010

    展开全文
  • 同时加入了一下新功能:IP定位:调用高德地图IP定位功能实现移动地图中心定位:调用高德地图移动地图定位实现定位城市名转58同城城市名以获得准确58同城城市域名:抓取58同城城市分类信息优化数据源、去除广告数据:...

    经过了一个星期的修补补,以及小伙伴奉献的代码,整个项目基本处于基本稳定运行的状态。

    同时加入了一下新功能:

    IP定位:调用高德地图IP定位功能实现

    移动地图中心定位:调用高德地图移动地图定位实现

    定位城市名转58同城城市名以获得准确58同城城市域名:抓取58同城城市分类信息

    优化数据源、去除广告数据:小伙伴奉献代码

    今天主要简单讲解一下其中使用的一些高德地图API接口。

    #####高德地图JavaScript API 主体为map对象,基本所有的操作都是通过map对象来实现的。

    map对象实例化是通过 Amap类来做的。如以下代码:

    1

    2

    3

    4

    5

    6

    map = new AMap.Map("container", {

    resizeEnable: true,

    zoomEnable: true,

    center: [121.297428, 31.1345],//经纬度,此处为上海

    zoom: 11

    });

    IP定位

    调用Map.CitySearch()获得当前IP所在城市,直接将地图显示成当前城市。代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    function showCityInfo(map) {

    //实例化城市查询类

    var citysearch = new AMap.CitySearch();

    //自动获取用户IP,返回当前城市

    citysearch.getLocalCity(function (status, result) {

    if (status === 'complete' && result.info === 'OK') {

    if (result && result.city && result.bounds) {

    var cityinfo = result.city;//获得XX市

    var citybounds = result.bounds;//用于设置地图显示位置的实例

    cityName = cityinfo.substring(0, cityinfo.length - 1);//去掉市这个字

    ConvertCityCNNameToShortCut();//城市名转换成58同城城市域名字母,如上海->sh,苏州->su,

    //下面会有实现代码

    document.getElementById('IPLocation').innerHTML = '您当前所在城市:' + cityName;

    //地图显示当前城市

    map.setBounds(citybounds);

    }

    } else {

    document.getElementById('IPLocation').innerHTML = result.info;

    }

    });

    }

    移动地图自动中心定位

    之前有一版是让用户输入城市名,然后直接定位到输入的城市的。

    这个功能卡在了设置地图显示位置上,如果是使用高德地图提供的搜索控件的话,又存在输入结果之后搜索结果可能是多个的问题。而且这点我只是要取到用户想要定位的城市而已,感觉没必要做得太复杂。

    昨晚在看高德地图API的时候发现,有一个移动地图获得地图中心所在位置的样例,马上眼前一亮了。这个功能比我想要的还要好…果断上。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    function MapMoveToLocationCity()

    {

    map.on('moveend', getCity);

    function getCity() {

    map.getCity(function (data) {

    if (data['province'] && typeof data['province'] === 'string') {

    var cityinfo = (data['city'] || data['province']);

    cityName = cityinfo.substring(0, cityinfo.length - 1);

    ConvertCityCNNameToShortCut();//城市名转58同城地区域名

    document.getElementById('IPLocation').innerHTML = '地图中心所在城市:' + cityName;

    }

    });

    }

    }

    整个代码的意思是,给map绑定一下移动时间,移动完了之后,调用getCity的方法获取当前地图中心所在城市信息。

    这个时候要注意,城市名可能在city对象里面,也可能在province里面。

    原因很简单:普通城市等级就是城市,我国还存在一个和省份一个等级的城市:直辖市。因此直辖市的城市名是在province里面的。

    城市名匹配58同城地区域名

    这个是上个版本(两三天前)的一个bug引出来的新功能。

    上个版本是让用户输入城市名,然后提取城市名的中文拼音首字母作为58同城地区域名。如上海 =sh,广州=gz,北京=bj,成都=cd。

    这个功能使用的是网上别人写的一个JS库,通过汉字匹配实现的。转换出来的数据没什么问题,不过我国汉字实在奥妙。

    广州=gz,赣州=gz;

    遂宁=sn;绥宁=sn;

    惠州=hz,杭州=hz。

    这样一来,上面这个做法就没法玩了。

    想了下怎么解决这个问题,灵机一动。反正是在爬58的数据,这个城市名和城市域名数据58同城肯定有啊,然后找到了这个。

    58同城城市分类导航

    很明显,我要的所有城市名和城市域名都是里面了。

    晚上和衣衣说了下,衣衣一大早就把处理好的json数据给我了。

    于是来了下面一段代码:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    //加载json文件

    $.getJSON("DomainJS/city.json", function (data)

    {

    allCityInfo = data;

    });

    function ConvertCityCNNameToShortCut()

    {

    var filterarray = $.grep(allCityInfo, function (obj) {

    return obj.cityName == cityName;

    });//找到当前城市名对应的json对象

    //获取json对象的地区域名

    cityNameCNPY = filterarray instanceof Array ?

    filterarray[0].shortCut : filterarray != null ? filterarray.shortCut : "";

    }

    高德地图自动补全功能

    1

    2

    3

    1

    2

    3

    4

    5

    var auto = new AMap.Autocomplete({

    input: "work-location"

    });

    AMap.event.addListener(auto, "select", workLocationSelected);

    看方法前面也知道,其实这就是把ID为work-location的input初始化为地图插件,然后给Amap增加了一个监听事件。

    当其中选中某一个数据的时候,触发workLocationSelected函数。效果如下:

    在这里locationSelected是定位到所选位置,代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    function workLocationSelected(e) {

    workAddress = e.poi.name;

    loadWorkLocation();

    }

    function loadWorkLocation() {

    delWorkLocation();

    var geocoder = new AMap.Geocoder({

    city: cityName,

    radius: 1000

    });

    geocoder.getLocation(workAddress, function (status, result) {

    if (status === "complete" && result.info === 'OK') {

    var geocode = result.geocodes[0];

    x = geocode.location.getLng();

    y = geocode.location.getLat();

    loadWorkMarker(x, y);

    loadWorkRange(x, y, 60, "#3f67a5", vehicle);

    map.setZoomAndCenter(12, [x, y]);

    }

    })

    }

    至于导航功能代码我没怎么动,没去研究就不献丑了…

    最后来个效果图。

    ####北京

    ####成都

    ####苏州

    ###深圳

    展开全文
  • Python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景?解答:定义:list: 链表, 有序的项目, 通过索引进行查找, 使用方括号"[]";tuple: 元组, 元组将多样的对象集合到一起, 不能修改, 通过索引进行...
  • python爬取你想要的数据,近期由于业务需求,用python爬取了高德地图一些地点的数据,爬出来数据大致情况如下:下面是基本流程:1、注册成为高德地图API开发者,网址http://lbs.amap.com/(主要是获取自己的keywords ...
  • 认识高德地图API比起普通的静态网页爬虫,爬高德地图的麻烦之处在于API中存在参数。这需要我们首先要对高德地图API有个基本的了解。登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,...
  • -1):27 print("倒计时{}秒".format(i), flush=True, end="\b"*5)28 time.sleep(1)29 exceptException as e:30 print(e)31 returnresponse_32 33 #gps坐标转化高德坐标 34 defexchange(self, coordinate):35 """ 36 ...
  • Python 偷偷抓取女朋友的行踪(女朋友在哪里)阅读文本大概需要 5 分钟。1目 标 场 景有时候女朋友一个人在外面玩耍,问她在哪个地方,就是不告诉我。但是,你又很想知道女朋友的「位置」,这该如何是好?其实你...
  • 作者 | 大咪来源 | 咪哥杂谈(ID:migezatan)1前言接下来的两篇文章介绍下,如何使用 requests 库玩转高德地图!说是玩转,不如通俗的说是用 requests 库来请求高德地图为我们提供的官方API。本篇是介绍地图业务相关性...
  • 大厂是有很多好处的,面试邀请除了邮件通知之外,还会在短信上通知。这些细节很人性化。赞一个面试约的是下午两点,进去的时候发现门还走错了,真是蜜汁尴尬。进入需要提供一个编码,然后才能进入的。...
  • 高德2python爬取了高德地图一些地点的数据,爬出来数据大致情况如下:日兰高速-鼠标点击坐标(Lng,Lat):116.463649,35.523882石桥镇-鼠标点击坐标(Lng,Lat):116.724574,35.303396...02坐标) - openGPS....
  • 项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。本教程由ekCit发布在实验楼,完整...
  • 此次所讲的高德地图基本上可以解决我们的痛点,当然百度地图也可以哦。涉及知识主要是python爬去数据,俗称爬虫,设计到的函数库为request和beautifulsoup。当然我刚开始玩,所以可能多有不对...
  • python调用高德API实现地址转经纬度目的为了获取批量地址的经纬度而生的代码~过程网上资源网上也有一部分在线的网站已经实现了的,但是不是很准。比如:https://map.yanue.net/这种呢,部分地区还行,但是有一些是...
  • 项目中需要用省市区来进行检索,原想高德地图肯定会有API来获得这些数据,结果没有找到,有一个接口好像可以用,但是会附带大量的边界坐标点。所以就不如自己把高德的省市区列表扒下来,自己写接口来完成这个功能。...
  • 初始值,Python的字符是ascii,html是utf-8,转要转码#__author__='ZHENGT'# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8') #Python默认ascii,需要转成utf-8B.以静态图片形式展示图片1)...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • # -*- encoding: utf-8 -*-# coding:utf-8from xlwt import Workbookfrom tempfile import TemporaryFileimport urllib.requestimport xml.dom.minidom as minidomimport xlwt#结果目录inforst = '/home/yuhz/...
  • 0 前言本文工具使用anaconda3.5+chrome一般爬虫分为非可视化爬虫和可视化爬虫。①非可视化爬虫:通过抓包获取...1 高德地图最近在研究高德地图小区边界经纬度坐标穿获取的问题,本来想先尝试使用requests,发现高德...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • 高德开放平台注册账户https://lbs.amap.com/dev/index验证手机号码、邮箱后进入开发者后台创建一个应用:并为该应用添加 Key,服务平台选择 web 服务申请完毕后测试一下 Key 是否可用:替换掉下面 URL 的 Key 值...
  • 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:Darcy频道# coding=utf-8import requestsimport timeimport jsonimport astimport...
  • 1)*length,2,j['address']) pass i+=1 pass workbook.close()#最后关闭Excel表格 注意事项,当Excel表格正在打开的情况下会报没有关闭的错所以请关闭Excel再运行此程序 以上这篇python requests爬取高德地图数据的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,076
精华内容 430
关键字:

高德python

python 订阅