this, this, this
沒(méi)用過(guò) COM 但是提示 4323 行錯(cuò)誤,仔細(xì)看看
被上傳php文件 說(shuō)明有上傳漏洞吧,很可能是0截?cái)嗌蟼鞯腜HP文件,最好先把上傳目錄執(zhí)行權(quán)限去掉,再處理上傳漏洞
原來(lái)是因?yàn)?lt;Tree>標(biāo)簽放在MuseUI的標(biāo)簽里面了:
<mu-dialog>
<Tree ref="tree" :data="data1"><Tree>
</mu-dialog>
如果<Tree>不與MuseUI混合使用就能通過(guò)$refs獲取<Tree>組件實(shí)例了
goToDetail函數(shù)倒是綁定了this,是renderComment 函數(shù)出問(wèn)題了么?
為什么要弄兩個(gè)spider呢?你完完全全可以在第一個(gè)spider下再寫一個(gè)parse_shuping_two啊.
對(duì)你的代碼稍作了修改,可以達(dá)到你的要求(別忘了在settings.py中加上ITEM_PIPELINES = {'ysw.pipelines.YswPipeline': 300}以激活pipeline):
spiders/shuping.py
# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request
from ysw.items import YswItem, YswItems
import json
from scrapy import Selector
import re
class ShupingSpider(scrapy.Spider):
name = 'shuping'
#allowed_domains = ['www.yousuu.com']
start_urls = ['http://www.yousuu.com/book/124600']
#此方法解析評(píng)論第一頁(yè)的一級(jí)書評(píng)
def parse(self, response):
#遍歷每個(gè)一級(jí)書評(píng),獲得信息
for r in response.xpath('//*[@id="content"]/div'):
item = YswItem()
#發(fā)帖時(shí)間
item['time'] = r.xpath('string(./div/div/div[1]/div/span[2])').extract_first().strip()
#獲得贊同數(shù)
agree = r.xpath('string(./div/div/div[2]/button[1]/span)').extract_first().strip()
if agree:
item['agree'] = agree
else:
item['agree'] = '0'
#一級(jí)書評(píng)內(nèi)容
item['fir_text'] = r.xpath('string(./div/div/p)').extract_first().replace('\r\n', '').replace(' ', '')
#二級(jí)評(píng)論數(shù):
sec_num = r.xpath('string(./div/div/div[2]/button[2]/span)').extract_first().strip()
if sec_num:
item['sec_num'] = sec_num
#獲取二級(jí)評(píng)論url的組成部分cid
cid = r.xpath('./@cid').extract_first().strip()
#補(bǔ)全二級(jí)評(píng)論第一頁(yè)的url
sec_text_url = "http://www.yousuu.com/ajax/getonecomment?render=true&cid={}".format(cid)
#將每一個(gè)一級(jí)書評(píng)下的所有二級(jí)書評(píng)的獲取都交給sp_two.parse
sec_text_list = []
yield Request(sec_text_url, meta={'sec_text_list':sec_text_list, 'item':item}, callback=self.parse_shuping_two)
else:
item['sec_num'] = '0'
yield item
return print('一級(jí)書評(píng)第一頁(yè)!')
def parse_shuping_two(self, response):
items = YswItems()
# json格式轉(zhuǎn)為python結(jié)構(gòu)數(shù)據(jù)
jsobj = json.loads(response.body)
# 從字典中提取html的值,也就是二級(jí)評(píng)論的html格式文本
html = jsobj['html']
# 獲得二級(jí)書評(píng)第一頁(yè)的所有二級(jí)書評(píng)內(nèi)容,放在列表result中,迭代這個(gè)parse方法時(shí),依次是第2,3,頁(yè)等等
result = Selector(text=html).xpath('//p/text()').extract()
# 獲得上一個(gè)Request傳遞過(guò)來(lái)的參數(shù), 第一次是一個(gè)空列表
sec_text_list = response.meta['sec_text_list']
# 獲得shuping.parse()傳來(lái)的item
item = response.meta['item']
'''每一頁(yè)的二級(jí)評(píng)論內(nèi)容放在一個(gè)列表result中,這個(gè)列表又放在列表sec_text_list中
二級(jí)書評(píng)每一頁(yè)的第一個(gè)書評(píng)都是它的一級(jí)書評(píng)內(nèi)容,所以從每一頁(yè)新的二級(jí)書評(píng)從第二個(gè)算起'''
sec_text_list.extend(result[1:])
# 判斷二級(jí)評(píng)論是否還有下一頁(yè)
nextpage = Selector(text=html).xpath('//a[text()="更多回復(fù)"]/@onclick').extract_first()
if nextpage:
# 獲得下一頁(yè)的cid
cid = re.search(r"(.*?)'(.*?)',(.*)", nextpage).group(2)
# 獲取下一頁(yè)的t
t = re.search("(.*),(.*?)\)", nextpage).group(2)
# 組裝二級(jí)評(píng)論下一頁(yè)的url
next_page_url = "http://www.yousuu.com/ajax/getcommentreply?cid={}&t={}&render=true".format(cid, t)
# print('next_page_url')
# 迭代這個(gè)方法繼續(xù)獲得下一頁(yè)的二級(jí)評(píng)論內(nèi)容
yield Request(next_page_url, meta={'sec_text_list': sec_text_list, 'item': item}, callback=self.parse_shuping_two)
else:
items['sec_text'] = sec_text_list
items['time'] = item['time']
items['agree'] = item['agree']
items['sec_num'] = item['sec_num']
items['fir_text'] = item['fir_text']
print('已獲取此一級(jí)書評(píng)的全部二級(jí)書評(píng)!')
yield items
pipelines.py
# -*- coding: utf-8 -*-
import os
class YswPipeline(object):
def process_item(self, item, spider):
base_dir = os.getcwd()
file_name = base_dir + '/SP.txt'
with open(file_name, 'a', encoding='utf-8') as f:
if item['sec_num'] == '0':
f.write('時(shí)間:' + item['time'] + '\n'
'贊同數(shù):' + item['agree'] + '\n'
'二級(jí)評(píng)論數(shù)量:' + item['sec_num'] + '\n'
'一級(jí)評(píng)論內(nèi)容:' + item['fir_text'] + '\n\n'
)
else:
f.write('時(shí)間:' + item['time'] + '\n'
'贊同數(shù):' + item['agree'] + '\n'
'二級(jí)評(píng)論數(shù)量:' + item['sec_num'] + '\n'
'一級(jí)評(píng)論內(nèi)容:' + item['fir_text'] + '\n'
'二級(jí)評(píng)論內(nèi)容:' + '\n'.join(item['sec_text']) + '\n\n'
)
return item可以是可以的,能用分類或是標(biāo)簽來(lái)實(shí)現(xiàn),不過(guò)非常不推薦。
如果是要寫書的話,推薦使用gitbook,非常棒,簡(jiǎn)單的用Markdown就可以了。
先給其父級(jí)一個(gè)默認(rèn)樣式類 .nodata
通過(guò)這個(gè)給菜單一些默認(rèn)樣式,給個(gè)寬高啥的,淺色背景占位等。
拿到數(shù)據(jù)渲染完成把樣式去了,恢復(fù)實(shí)際樣式。
看看第一張圖,resolve(phone), 哪里來(lái)的 phone 變量?所以就 undefined 嘍
把 resolve(phone) 放到 let phone = getPhone.phoneNumber 后面才對(duì)啊,這才是正確的 resolve 這個(gè) promise 時(shí)機(jī)
======= 更新 ====
getSessionKey 返回的是 Promise , phone = getSessionKey() 這樣寫是不對(duì)的,要么 .then 要么用 async/await :
phone = await getSessionKey() 因?yàn)?code>slot-scope僅暴露出來(lái)一個(gè)scope對(duì)象,并不以你的命名轉(zhuǎn)移
也許是因?yàn)橹挥幸粋€(gè)屬性讓你看起來(lái)有點(diǎn)繞,看下面這個(gè)例子也許能讓你更容易理解一些
<slot :news='news' :index="index"></slot>
<template slot-scope="scope">
{{ scope.news }}
{{ scope.index }}
</template>
你如果想讓代碼更直觀一點(diǎn),可以直接結(jié)構(gòu)slot-scope
<template slot-scope="{ news }">
{{ news }}
</template>想多了。DNS解析過(guò)程在頁(yè)面解析之前。。前端無(wú)法獲取到這個(gè)信息。
如果是請(qǐng)求接口的話,沒(méi)有對(duì)應(yīng)的HTTP狀態(tài)碼標(biāo)記解析錯(cuò)誤,如果有,還可以判斷。
話說(shuō)前端判斷這個(gè)干什么呢?應(yīng)該不需要處理這種情況吧
一般push上去的.env文件是git被忽略的,需要在服務(wù)器網(wǎng)站根目錄檢查下有沒(méi)有.env,還有就是有些安裝包需要重新發(fā)布生成config文件
在資源文件夾下建三個(gè)文件夾, 分別對(duì)應(yīng)放置各自的application.properties文件
src/main/resources/dev/application.properties
src/main/resources/test/application.properties
src/main/resources/pro/application.properties
在pom.xml里先定義三個(gè)profile
<profiles>
<profile>
<!-- 本地開(kāi)發(fā)環(huán)境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<modifier></modifier>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- 默認(rèn)的,不加參數(shù)時(shí)執(zhí)行這個(gè)profile -->
</activation>
</profile>
<profile>
<!-- 測(cè)試環(huán)境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<modifier>-test</modifier>
</properties>
</profile>
<profile>
<!-- 生產(chǎn)環(huán)境 -->
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
<modifier>-pro</modifier>
</properties>
</profile>
</profiles>
在build的標(biāo)簽下, 先排除全部,再添加當(dāng)前通過(guò)-P參數(shù)激活的profile:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 資源根目錄排除各環(huán)境的配置,防止在生成目錄中多余其它目錄 -->
<excludes>
<exclude>test/*</exclude>
<exclude>pro/*</exclude>
<exclude>dev/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
最后,編譯時(shí)加-P參數(shù)即可, 如:
mvn -Ppro package歷史遺留問(wèn)題, 先有schema2.order。 再有schema1 。mongo的Arrey子集合分頁(yè)查詢好不好用。以上純屬妄言。。
另 : _id直接用做訂單id也可以啊, 本身mongo的_id生成算法是分布式的一種id生成算法。時(shí)間戳+機(jī)器碼+進(jìn)程Id+隨機(jī)數(shù)
你需要在beginDrag中去定義。
https://developers.weixin.qq....
流程:
1.調(diào)用接口wx.getUserInfo,從解密數(shù)據(jù)中獲取UnionID。注意本接口需要用戶授權(quán),請(qǐng)開(kāi)發(fā)者妥善處理用戶拒絕授權(quán)后的情況。
2.如果開(kāi)發(fā)者帳號(hào)下存在同主體的公眾號(hào),并且該用戶已經(jīng)關(guān)注了該公眾號(hào)。開(kāi)發(fā)者可以直接通過(guò)wx.login獲取到該用戶UnionID,無(wú)須用戶再次授權(quán)。
3.如果開(kāi)發(fā)者帳號(hào)下存在同主體的公眾號(hào)或移動(dòng)應(yīng)用,并且該用戶已經(jīng)授權(quán)登錄過(guò)該公眾號(hào)或移動(dòng)應(yīng)用。開(kāi)發(fā)者也可以直接通過(guò)wx.login獲取到該用戶UnionID,無(wú)須用戶再次授權(quán)。IE 只支持 11 以上,有支持 WebGL 的版本,太舊的版本沒(méi)辦法使用,請(qǐng)參考:
https://developer.autodesk.co...
分層這個(gè)事吧,其實(shí)各家都有不同的分法,主要看你用什么樣的架構(gòu)。比如:
這里就有5種分法,分別對(duì)應(yīng)不同的架構(gòu)模式。
回到題目里,其實(shí)分成“表現(xiàn)層”、“控制層”和“應(yīng)用層”我覺(jué)得是合理的(所以建議你可以去看看有關(guān)于MVC的東西),之所以沒(méi)有一個(gè)“網(wǎng)站服務(wù)器”,是因?yàn)橐淳W(wǎng)站架構(gòu)。如果同時(shí)有前后端的內(nèi)容呢,就可以用Web服務(wù)器把請(qǐng)求分開(kāi),前端的返回靜態(tài)資源,涉及到后端的就轉(zhuǎn)發(fā)給后端的應(yīng)用服務(wù)去處理(但后端應(yīng)用服務(wù)一樣可以自己處理,只是用Web服務(wù)器可能更輕量和靈活一些);但是如果是純后端項(xiàng)目呢,那就不需要Web服務(wù)器轉(zhuǎn)發(fā)了,直接用后端的應(yīng)用服務(wù)監(jiān)控請(qǐng)求就行了,也就沒(méi)有“網(wǎng)站服務(wù)器”一說(shuō)了。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。