鍍金池/ 問答/ 數(shù)據(jù)分析&挖掘問答
背叛者 回答

用 pillow 模塊把各式圖片轉換成像素集,然后轉成 numpy 數(shù)組,最后保存到文件。

請參考下面的代碼

# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np


def images_to_array(image_files, array_file):
    """ 將多個圖像文件保存成 numpy 數(shù)組,并存儲到 .npy 文件。
    """
    data = []
    for filename in image_files:
        data.append(np.array(Image.open(filename)))
    np.save(array_file, data)


def load_images(array_file):
    """ 從 .npy 文件讀取所有圖像數(shù)組。
    """
    return np.load(array_file)


images_to_array(['1.png', '2.png'], '1.npy')
load_images('1.npy')

參考資料

  1. https://pillow.readthedocs.io...
  2. https://docs.scipy.org/doc/nu...
擱淺 回答

已解決

 def parse(self, response):
        li_list = response.css("div.list_cont.Left_list_cont.Left_list_cont1 > div.tab_tj > div > div > ul > li")
        url_list = []
        for li in li_list:
            item = CardItem()
            href = li.css("a::attr(href)").extract_first()
            item['href'] = href
            item['title'] = li.css("a::attr(title)").extract_first()
            url_list.append(href)
            yield item
        for i in url_list:
            print("->>> %s" % i)
            yield scrapy.Request(url=i, callback=self.detail_parse, headers=self.headers)
孤酒 回答

問題已解決,又被js坑了(下次一定記?。?。
那個頁面我選擇的標簽是用js動態(tài)添加的,所以什么都爬不到就正常了。然后我又分析了一下用爬蟲獲取的頁面,是已經(jīng)登錄成功了的。

笨小蛋 回答

循環(huán)引用問題,已解決

喵小咪 回答
  1. 控制請求頻率。例如 隨機等待1-5秒請求一次
  2. 走代理
安淺陌 回答

試一試

text.encode('latin-1').decode('unicode_escape') 
雨蝶 回答

超時錯誤是服務端問題,又不是客戶端問題。網(wǎng)絡出錯很正常啊,重試就好。

陌離殤 回答
上面的情況都有一個共同點,好像都轉換成了數(shù)字0了,才有打印臺的結果表現(xiàn)

顯然并不都是把start當成0處理的....

1.先說MDN上寫了的,也就是負整數(shù)的情況。

對于start,MDN描述為:

...如果該參數(shù)為負數(shù),則表示從原數(shù)組中的倒數(shù)第幾個元素開始提取,slice(-2)表示提取原數(shù)組中的倒數(shù)第二個元素到最后一個元素(包含最后一個元素)。

也就是對于題目中arr.splice(-2, 1)的例子,提取之前arr = [9, 8, 2, 1],此時start為-2 + 4 = 3,因此行為等價于arr.splice(3, 1),結果2被抽走了,符合描述。

2.剩下的都是MDN未描述清楚的,這里要去看ECMA-262規(guī)范,這里以最新的規(guī)范做說明。

首先找到22.1.3.25 Array.prototype.splice的描述:

關于start的處理在這兩步完成,最后起作用的值是actualStart。

clipboard.png

所以第一步是把start進行ToInteger處理:

clipboard.png

然后發(fā)現(xiàn)又進了一個ToNumber處理....

clipboard.png

以入?yún)?code>undefined為例,首先經(jīng)過ToNumber,返回NaN

然后根據(jù)ToInteger的第二點,返回+0;

最后根據(jù)Splice的第四點,返回min(+0, length),也就是+0;

因此undefined作為start傳入,最后是被當做+0處理的。

剩下的你自己分析吧...

只愛你 回答

@可好了 謝謝你的回復,我已經(jīng)把需要的飛機場代碼給爬取到了我是使用的這個地址拼裝的http://flights.ctrip.com/inte... ,現(xiàn)在的主要是效率,太低。模擬一次請求,需要大概20秒的時間,才能把整個航線的航班數(shù)據(jù)爬取下來。 多線程的跑selenium 有很多問題。今天在看一下

愛礙唉 回答

很久沒有看到問得這么詳細的問題了,不過你只不過是缺少了一個請求頭

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

r = requests.get('http://music.163.com/api/playlist/detail?id=108101671', headers=headers)
print r.text
亮瞎她 回答

人家不是有api給你用嗎?

薔薇花 回答

其實直接

print(p1);

就可以

老梗 回答
我用數(shù)據(jù)庫查詢工具,db.linkbase.find({"spider_name":"test_spider"})大約耗時122秒

是122秒還是122ms?122秒的話相當慢了。
如果不確定是不是MongoDB方的問題,可以先用profiler看一下執(zhí)行的查詢到底花了多少時間。從你上面的信息來看,我比較傾向于不是數(shù)據(jù)庫這一端慢。

北城荒 回答

map的返回值是一個數(shù)組,這個問題用forEach比較合適

let newArr = [];
arr01.forEach(a1 => {
    arr02.forEach(a2 => {
        newArr.push({
            account: a1.account,
            city: a2.city
        });
    });
});
還吻 回答
  1. angle['ratio'] 不是表格嗎?
    angle 是表格,angle['ratio'] 是選出 'ratio' 那一列的數(shù)據(jù)。
  2. 為什么能與 n 判斷相等?angle['ratio']==n 不是返回的是布爾值嗎,為什么能作為angle[angle['ratio']==n]的索引?
    選出 ratio 那列數(shù)據(jù)之后,數(shù)組中的每個元素分別與 n 進行比較,得到一個 bool 數(shù)組。選出 [0.5, 0.75, 1.0, 1.5, 1.75] 判斷是否與1相等,得到 [false, false, true, false, false]。numpy 提供了 bool 數(shù)組索引的機制,所以返回 true 對應的那一行。
  3. temp.index[0] 是什么意思?
    返回 temp 這張表的第 0 行的索引值。這里你在構建 angle 的時候沒有指定索引,所以默認用數(shù)字做索引,所以返回 0。
  4. 為什么最后 return 返回的是元組?
    你函數(shù)里寫的是 return beta1, beta2, alpha,python 中對于多返回值是用 tuple 打包處理的

P.S.
看到前面我以為你 pandas 基礎為 0,看到最后一個問題我才知道你 python 基礎為 0,好好找本書看看吧。

兔寶寶 回答

自己分析百度云盤的接口。然后在自己服務器搭個中轉。一般百度接口也會換的。github 上看到很多這樣的案例了。。。技術無罪

別硬撐 回答

numpy 的 random 機制和 Python 標準庫的 random 模塊機制是一樣的,當我們設置相同的 seed,每次生成的隨機數(shù)相同。
如果不設置 seed,則每次會生成不同的隨機數(shù)。
這里引用 stackoverflow 上的最高票解答

>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55,  0.72,  0.6 ,  0.54])
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55,  0.72,  0.6 ,  0.54])
旖襯 回答

appkey估計是寫死的,你多試幾個就知道了

sign估計是前端js加密的,建議單步調(diào)試找加密方法

陪她鬧 回答

為何不嘗試下beautifulsoup4呢(笑)