let b = a.reduce((r,c,i)=>{
let index = parseInt(i/2);
if(r[index] === undefined) r[index] = [];
r[index].push(c);
return r;
}, []).map(o=>o.length>1?o:o[0]);
console.log(b);
如果上面能看懂,再給一個簡化版的
a.reduce((r,c,i,a)=>{
if(i%2 === 1) r.push([a[i-1], c]);
if(i%2 === 0 && i === a.length - 1) r.push(c);
return r;
}, [])HTTP 400 錯誤 - 請求無效 (Bad request) 可能是你的cookie有問題(可能是:語法無效、字段錯誤、字符錯誤等...),主要還是發(fā)請求錯誤
提前從$dataSkill中抽取出key作為數(shù)組,然后只做in_array判斷,不用內(nèi)層foreach了
用正則不是太推薦, 建議用標準的urllib庫來完成
>>>import urllib
>>>a = urllib.parse.parse_qs(urllib.parse.urlparse("http://abc.com/def?x=2&pn=2").query)
>>>a
{'x': ['2'], 'pn': ['2']}
或者用下面的方式直接獲得dict
>>>a = dict(urllib.parse.parse_qsl(urllib.parse.urlparse("http://abc.com/def?x=2&pn=2").query))
>>>a
{'x': '2', 'pn': '2'}array_intersect()
系統(tǒng)有現(xiàn)成的,就不要自己寫了
[自問自答] 我后來發(fā)現(xiàn)了,用chrome dev tool其實可以看到頁面本身請求數(shù)據(jù)時發(fā)送的appid/appkey,不過不是以這樣的param name呈現(xiàn)出來,所以一開始被我忽視了。實際上只要把這兩個鍵值對加進header里,并加上chrome里看得到的payload信息,用requests發(fā)送POST請求,就可以直接調(diào)取數(shù)據(jù)庫信息了。
500 是服務(wù)器的問題,你換個 jq 的 cdn 吧,看起來像是 jq 的服務(wù)器問題
如果是我來做的話,大概采用這么個思路。首先找到關(guān)鍵信息所在位置。信息都有具體的層級結(jié)構(gòu),具體到對應(yīng)到哪個html標簽,這個html標簽具有什么class屬性,這么一步作用是縮小了范圍。然后查找關(guān)鍵字:比如公司名稱、手機、姓名之類的,找到關(guān)聯(lián)的字段。最后考慮用正則輔助。
for循環(huán)結(jié)束后,i=3;
obj在循環(huán)外(又是一個對象,會被引用。你不用對象就不會有問題)最后拿到的就都是i=3的時候的數(shù)據(jù)。
所以你需要把obj的聲明放循環(huán)里面,每次循環(huán)結(jié)束后,obj這個對象都會被重新構(gòu)造,不會出引用問題,賦值就OK了。
一般地址和聯(lián)系電話之類的都在一個div里,你可以臨近信息匹配,應(yīng)該能增加識別率
xpath該這么寫:"http://span[@class='price J-p-5056201']/text()|//span[@class='price J-p-p-5056201']/text()"
function multi_array_sort($multi_array,$sort_field,$sort_type = SORT_ASC) {
if(empty($multi_array))
return false;
$arr_field = array();
foreach($multi_array as $row) {
if(empty($row))
return false;
array_push($arr_field,$row[$sort_field]);
}
array_multisort($arr_field,$sort_type,$multi_array);
return $multi_array;
}
$default['users'] = multi_array_sort($default['users'],'name',SORT_DESC);
print_r($default);
phantomjs 已經(jīng)不推薦使用了,pyspider v0.3.9 已經(jīng)支持 splash ,建議使用 splash 渲染 js。
Enabled by fetch argument --splash-endpoint=http://splash:8050/execute
調(diào)用的時候使用 fetch_type='splash'
https://weibo.com/aj/mblog/fs...
沒錯的話,獲取到的數(shù)據(jù)應(yīng)該是這條。最后多一句,對象要找對,不然容易耽誤了一生。
如下為生成器的 next() 函數(shù)的描述
開始生成器函數(shù)的執(zhí)行或者在最后一次執(zhí)行的yield表達式處恢復(fù)執(zhí)行。當生成器函數(shù)使用next()方法恢復(fù)執(zhí)行時,當前的yield表達式始終None。然后執(zhí)行繼續(xù)行進到下一個yield表達式,在那里生成器被再次掛起并返回expression_list的值給next()的調(diào)用者。
即你在第一次 yield 5 后,,這個時候 m= 這個賦值操作根本沒有執(zhí)行,然后,第二次使用 next 時, 當前的 yield 表達式為 None,即 m=None
add 'r' in front of address, like this (r'C:....')
@tombear 謝謝,這個文章確實不錯,改下:index.html或其他類型的首頁
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="/favicon.ico" mce_href="/favicon.ico" type="image/x-icon">
<style media="screen" type="text/css">
#appLoading { width: 100%; height: 100%; }
#appLoading span {
position: absolute;
display: block;
font-size: 50px;
line-height: 50px;
top: 50%;
left: 50%;
width: 200px;
height: 100px;
-webkit-transform: translateY(-50%) translateX(-50%);
transform: translateY(-50%) translateX(-50%);
}
</style>
</head>
<body>
<div id="appLoading">
<span>Loading...</span>
</div>
<div id="app" style="display: none">
<app></app>
</div>
<!-- built files will be auto injected -->
</body>
</html>
在App.vue中加入:
mounted(){
document.getElementById('app').style.display = 'block';
document.getElementById('appLoading').style.display = 'none';
}
OK,謝謝
如果你需要的數(shù)據(jù)在html的標簽里,那就直接讀取這一段html標簽咯。
你具體說一下“關(guān)鍵數(shù)值”是哪個東西
先檢查拼接后的新網(wǎng)址有沒有問題?手動在瀏覽器中能不能打開。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。