這段時間使用爬蟲跟蹤鏈家固定區域的房價走勢,開發了乙個小web系統,記錄一下中間遇到的各種坑
主要有以下幾個組成部分
1.前台:bootstrap
2.後台:python flask
3.資料庫:mongodb
1.flask 使用render_template 進行資料互動,並且js進行讀取
背景:flask需要使用乙個list 、字典傳大量的資料到js中進行處理,如果js直接使用模板進行渲染},會出現大量不識別字元
1,處理方法:使用json進行格式化處理
list1 =
postsjson2 = json.dumps(list1)
2,處理方法:使用不可見div在html進行資料處理
style="display:none"
id="}"
datalist="}">
div>
js中獲取
json.parse(document.getelementbyid('******name').getattribute('datalist'))
2.flask 與js資料的時間戳不匹配(python為秒,js為毫秒)
背景:使用python 傳輸過去之後,在python 2.7 版本存在」l」,js無法識別
處理方法:不要在python中乘1000 要在js中乘1000,下面是個二維陣列的處理方法
function
calatime
(arr)
return arr
}
3.bootstrap 畫折線圖
背景:使用bootstrap畫折線圖,遇到很多坑
處理方法:
1.可以使用charts或者使用highcharts,這裡使用的是highcharts
2.針對時間戳的處理,參考上面一條
3.顯示提示框的處理細節:
tooltip: ,
4.居中顯示問題
class="row row-top col-lg-6">
id="daycontainer"
style="max-width:800px;height:400px"
class="center-block">
div>
div>
4.mongodb資料庫
4.1時間儲存
背景:資料庫中難免會存時間,但是儲存的格式如何定義
儲存建議:一律採用時間戳進行儲存,便於後面的資料分析
同時資料庫查詢的時候,進行時間大小匹配查詢
today_query = }
col = data_sheet.find(today_query)
4.2mongdb認證use ***
db.createuser(
... ]
... }
... )
4.3mongdb後台啟動mongod --fork -f ***.conf
4.4web前台後台執行python run.py >/dev/
null
2>&1 &
4.5 資料庫的設計尤為重要,根據資料型別關係,選擇關係型?
5.scrapy 爬蟲
5.1 判定爬蟲之後的動作
在spider的init中可以新增訊號捕捉操作
dispatcher.connect(self.spider_closed, signals.spider_closed)
defspider_closed
(self):
print("finished")
5.2 爬蟲過程中,儲存不同的資料
多個item時使用
if isinstance(item, countitem):
print
1elif isinstance(item, priceitem):
print
2elif isinstance(item, humanitem):
print
3
5.3 活用yeild進行url跳轉 web開發中遇到的問題
1.如果用提交表單時,如果控制項的屬性置成disabled true,時,瀏覽器就不會將該控制項的值傳送給伺服器 通過抓包就可以看到,在line base text data資料中沒有該控制項的名字 值對 例子 所以在獲取該控制項資料時,得到的是空 比如在cgi中呼叫函式cgiformstringn...
記錄開發中遇到的坑
原因是伺服器出口ip和外網ip不一致。通過下面方式獲取出口ip即可 採用下面的方式去傳送 rocketmqtemplate.syncsend topic name messagebuilder.withpayload json.tojsonstring profitorder build 我遇到的原...
開發中遇到的問題記錄
jquery相關問題 1.html 方法無法獲取到input中的value tomcat相關問題 1.web.xml中 do配置導致tomcat無法啟動 intellij idea中怪異出錯bug,tomcat中和main中md5加密不一致 在tomcat下,getbytes eclipse按utf...