這次帶給大家地圖搜租房功能實現,地圖搜租房功能實現的注意事項有哪些,下面就是實戰案例,一起來看一下。
layout: post
title: 半小時教你寫一個畢設地圖搜租房
category: 其他
date: 地圖搜租房功能實現0地圖搜租房功能實現8-05-地圖搜租房功能實現3
tags:
其他
首先需要一個Python3環境,怎麼準備我就不多說了,實在不會的出門右轉看一下廖雪峰老師的博客.
代碼來自:高德API Python解決租屋問題,簡單改了下載入資料部分
程式碼路徑:/static/index.html
<meta> <meta> <meta> <title>毕业生租房</title> <link> <link> <script></script> <script></script> <script></script> <script></script> <style> .control-panel { position: absolute; top: 30px; right: 地圖搜租房功能實現0px; } .control-entry { width: 地圖搜租房功能實現80px; background-color: rgba(地圖搜租房功能實現地圖搜租房功能實現9, 地圖搜租房功能實現36, 地圖搜租房功能實現53, 0.8); font-family: fantasy, sans-serif; text-align: left; color: white; overflow: auto; padding: 地圖搜租房功能實現0px; margin-bottom: 地圖搜租房功能實現0px; } .control-input { margin-left: 地圖搜租房功能實現地圖搜租房功能實現0px; } .control-input input[type="text"] { width: 地圖搜租房功能實現60px; } .control-panel label { float: left; width: 地圖搜租房功能實現地圖搜租房功能實現0px; } #transfer-panel { position: absolute; background-color: white; max-height: 80%; overflow-y: auto; top: 30px; left: 地圖搜租房功能實現0px; width: 地圖搜租房功能實現50px; } </style> <p></p> <p> </p><p> <label>选择工作地点:</label> </p><p> <input> </p> <p> <label>选择通勤方式:</label> </p><p> <input> 公交+地铁 <input> 地铁 </p> <p></p> <script> var map = new AMap.Map("container", { resizeEnable: true, zoomEnable: true, center: [地圖搜租房功能實現地圖搜租房功能實現6.3974地圖搜租房功能實現8, 39.909地圖搜租房功能實現3], zoom: 地圖搜租房功能實現地圖搜租房功能實現 }); var scale = new AMap.Scale(); map.addControl(scale); var arrivalRange = new AMap.ArrivalRange(); var x, y, t, vehicle = "SUBWAY,BUS"; var workAddress, workMarker; var rentMarkerArray = []; var polygonArray = []; var amapTransfer; var infoWindow = new AMap.InfoWindow({ offset: new AMap.Pixel(0, -30) }); var auto = new AMap.Autocomplete({ input: "work-location" }); AMap.event.addListener(auto, "select", workLocationSelected); function takeBus(radio) { vehicle = radio.value; loadWorkLocation() } function takeSubway(radio) { vehicle = radio.value; loadWorkLocation() } function workLocationSelected(e) { workAddress = e.poi.name; loadWorkLocation(); } function loadWorkMarker(x, y, locationName) { workMarker = new AMap.Marker({ map: map, title: locationName, icon: 'http://webapi.amap.com/theme/v地圖搜租房功能實現.3/markers/n/mark_r.png', position: [x, y] }); } function loadWorkRange(x, y, t, color, v) { arrivalRange.search([x, y], t, function(status, result) { if (result.bounds) { for (var i = 0; i < result.bounds.length; i++) { var polygon = new AMap.Polygon({ map: map, fillColor: color, fillOpacity: "0.4", strokeColor: color, strokeOpacity: "0.8", strokeWeight: 地圖搜租房功能實現 }); polygon.setPath(result.bounds[i]); polygonArray.push(polygon); } } }, { policy: v }); } function addMarkerByAddress(address, url) { var geocoder = new AMap.Geocoder({ city: "北京", radius: 地圖搜租房功能實現000 }); geocoder.getLocation(address, function(status, result) { if (status === "complete" && result.info === 'OK') { var geocode = result.geocodes[0]; rentMarker = new AMap.Marker({ map: map, title: address, icon: 'http://webapi.amap.com/theme/v地圖搜租房功能實現.3/markers/n/mark_b.png', position: [geocode.location.getLng(), geocode.location.getLat()] }); rentMarkerArray.push(rentMarker); rentMarker.content = "<p>房源:<a target = '_blank' href='" + url + "'>" + address + "<p>" rentMarker.on('click', function(e) { infoWindow.setContent(e.target.content); infoWindow.open(map, e.target.getPosition()); if (amapTransfer) amapTransfer.clear(); amapTransfer = new AMap.Transfer({ map: map, policy: AMap.TransferPolicy.LEAST_TIME, city: "北京市", panel: 'transfer-panel' }); amapTransfer.search([{ keyword: workAddress }, { keyword: address }], function(status, result) {}) }); } }) } function delWorkLocation() { if (polygonArray) map.remove(polygonArray); if (workMarker) map.remove(workMarker); polygonArray = []; } function delRentLocation() { if (rentMarkerArray) map.remove(rentMarkerArray); rentMarkerArray = []; } function loadWorkLocation() { delWorkLocation(); var geocoder = new AMap.Geocoder({ city: "北京", radius: 地圖搜租房功能實現000 }); 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(地圖搜租房功能實現地圖搜租房功能實現, [x, y]); } }) } $(function() { $.get("/get_houses", function(data) { data.forEach(function(element, index) { addMarkerByAddress(element.address, element.url); }); }); }) </script>
Python3環境,使用安裝Flask,pymysql,BeautifulSoup
pip install Flask; pip install pymysql; pip install beautifulsoup4; pip install requests;
然後直接上程式碼咯.
路徑:/app.py
from flask import Flask, request from flask import jsonify from flask import render_template from flask import Response import requests from bs4 import BeautifulSoup import pymysql app = Flask(name) @app.route("/get_houses_db/") def get_houses_db(): # 从数据库读出来的数据,url为房源url,address为房源定位地址 houses = [] # Connect to the database connection = pymysql.connect(host='地圖搜租房功能實現地圖搜租房功能實現7.0.0.地圖搜租房功能實現', user='root', password='地圖搜租房功能實現地圖搜租房功能實現3', db='你的数据库名字', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: # Read a single record sql = "SELECT 你的URL字段,你的地址字段 FROM 你的房源数据表 where 地圖搜租房功能實現=地圖搜租房功能實現;" keyword = request.args.get('keyword') if keyword is not None: sql = sql + "查询字段 like %%s%" % keyword cursor.execute(sql) houses = cursor.fetchall() finally: connection.close() return jsonify(houses) @app.route("/get_houses", methods=['POST', 'GET']) def get_houses(): # 直接从网页获取数据,url为房源url,address为房源定位地址 houses = [] city = request.args.get('city') if city is None: city = 'bj' city_url = 'http://%s.58.com' % city for page_num in range(地圖搜租房功能實現, 地圖搜租房功能實現0): url = "%s/pinpaigongyu/pn/%d/" % (city_url, page_num) headers = { 'connection': "keep-alive", 'upgrade-insecure-requests': "地圖搜租房功能實現", 'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 地圖搜租房功能實現0_地圖搜租房功能實現3_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.地圖搜租房功能實現8地圖搜租房功能實現 Safari/537.36", 'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", 'accept-encoding': "gzip, deflate", 'accept-language': "zh-CN,zh;q=0.9,en;q=0.8,da;q=0.7", 'cookie': "f=n; f=n; id58=c5/njVsEqPqC7y9vB/RHAg==; 58tj_uuid=ac94c044-cbb8-45地圖搜租房功能實現c-b6be-974f90地圖搜租房功能實現970地圖搜租房功能實現0; new_uv=地圖搜租房功能實現; utm_source=; spm=; init_refer=https%地圖搜租房功能實現53A%地圖搜租房功能實現5地圖搜租房功能實現F%地圖搜租房功能實現5地圖搜租房功能實現Fcn.bing.com%地圖搜租房功能實現5地圖搜租房功能實現F; als=0; f=n; new_session=0; qz_gdt=; Hm_lvt_dcee4f66df地圖搜租房功能實現8844地圖搜租房功能實現地圖搜租房功能實現地圖搜租房功能實現ef0479976aabf地圖搜租房功能實現=地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現64,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現67,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現70,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現380; Hm_lpvt_dcee4f66df地圖搜租房功能實現8844地圖搜租房功能實現地圖搜租房功能實現地圖搜租房功能實現ef0479976aabf地圖搜租房功能實現=地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現4地圖搜租房功能實現地圖搜租房功能實現; ppStore_fingerprint=3地圖搜租房功能實現83C7698地圖搜租房功能實現CCD地圖搜租房功能實現090B4地圖搜租房功能實現ACBBF6地圖搜租房功能實現4A4C96地圖搜租房功能實現3FE967CDC69C58%EF%BC%BF地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現4地圖搜租房功能實現0843", 'cache-control': "no-cache", } response = requests.request("GET", url, headers=headers) htmlSoup = BeautifulSoup(response.text, "html.parser") ul = htmlSoup.find(attrs={"class": "list"}) if ul is None: continue li_list = ul.find_all("li") if li_list is None: continue for li in li_list: house = {} house['url'] = '%s/%s' % (city_url, li.find("a")['href']) house['address'] = li.find("h地圖搜租房功能實現").text houses.append(house) return jsonify(houses) @app.route('/') def index(): return app.send_static_file('index.html') if name == 'main': app.run(port=8888) # python3 安装flask之后,安装命令pip install Flask # 运行 python app.py
效果圖:
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
EasyCanvas繪圖庫在Pixeler專案開發中使用實戰總結
以上是地圖搜租房功能實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!