返回列表 上一主題 發帖

[原創] python上市櫃三大法人買賣超日報資料下載

回復 131# lpk187

唉~~還是不行,算了,感謝l大的資訊提供

另外有去查了一下,的確,win版在用開發上  都是卡在轉碼@@

TOP

回復 133# c_c_lai


    小弟用2.7的原因是,opencv的教學好像2.7居多,相關套件也是......

TOP

zyzzyva大
不好意思,小弟又失敗了  哈哈

lpk187大
成功了,非常感謝您幫忙

其實每次在爬網頁時,小弟都會另外拉一段代碼來解碼,很少直接存下來的,所以還沒碰上存檔轉碼的問題,這次剛好學習了,非常感謝二位幫忙~~挺熱心的  哈哈
ps:一般小弟覺得比較急的想解的問題,大都是瘋狂找估狗大神   很少這樣問來的.....

TOP

回復 133# c_c_lai


    您講的應該是這個吧? anaconda / Packages / python 3.5.2

TOP

回復 140# lpk187

其實   小弟就是裝 Anaconda 然後使用 2.7
很多套件還是小弟在補上的@@

所以,目前我碰上的情況,另外用  Anaconda 開一個3.4版本,用大家的代碼  也許就解決了?

TOP

回復 144# lpk187


  原來有版本轉換套件,感謝您了••••有空會來試試

另外,大家提取網頁資料時,在網上有查到,提到有些網站會記錄 headers = {"User-Agent": "Mozilla/5.0"} 資訊來判斷連線記錄(有些是判ip)
為了不讓提取的網頁這麼快就改版&有所警覺,所以上網查了些亂數排列的方式,給大家方便使用
項目可以自己上網找來新增,本身是打算找十個來用@@
  1. import random
  2. hs = random.choice([
  3. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
  4. 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16',
  5. 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'        
  6. ])
  7. headers = {"User-Agent":hs}
  8. print headers
複製代碼

TOP

回復 146# jackyq

因為短時間重覆開網頁等於是攻擊對方的伺服器,所以有些會判斷 ip
解鎖定ip比較麻煩@@
要找一堆ip,速度又不穩,有些失敗率高,小弟懶了   哈哈

所以有些寫出來的  都很低調的~~
因為一開放,網頁就GG了@@

TOP

本帖最後由 koshi0413 於 2016-9-17 19:51 編輯

改一下隨機選取之作法
  1. import random
  2. hs = ['Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
  3.        'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16',
  4.        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0',           
  5.        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)',
  6.        'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)']

  7. headers = {"User-Agent":random.choice(hs)}   #此行請丟在各網頁url前段,每次for至網址就會變換了
複製代碼

TOP

本帖最後由 koshi0413 於 2016-9-18 18:40 編輯

回復 149# c_c_lai

差別在於  User-Agent  內容 會隨機變換,避免用同一資訊大量提取網頁,下面有win10, iphone, ipad,Linux
其它的要在網上收集,反正就是看到就丟進去,隨機的越多越好,在短時間大量取網頁,送出至對方伺服器的資料才有所差別

不過這只是第一步,其實重要的還是在於  ip 隨機變換

應用例:
  1. import requests
  2. import random

  3. hs = ['Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
  4.            'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16',
  5.            'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
  6.            'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'     
  7.            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)']


  8. headers = {"User-Agent":random.choice(hs)}
  9. url = '第一個網頁'  
  10. payload={'download':'csv',
  11.         'qdate':'105/09/07',
  12.         'selectType':'ALL'}
  13. res = requests.post(url, headers=headers, data=payload, stream=True)

  14. headers2 =  {"User-Agent":random.choice(hs)}
  15. url2 = '第二個網頁'
  16. payload2={'download':'csv',
  17.         'qdate':'105/09/07',
  18.         'selectType':'ALL'}
  19. res2 = requests.post(url2, headers=headers2, data=payload2, stream=True)
複製代碼
單純的隨機變換例:
  1. import random
  2. for i in xrange(10):
  3.     hs = ['Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
  4.            'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16',
  5.            'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
  6.            'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'     
  7.            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)']
  8.     headers = {"User-Agent":random.choice(hs)}
  9.     print headers
複製代碼

TOP

回復 151# c_c_lai

這是隨機排列,並不是每項排列,所以可能是沒輪到吧?
就算真的沒有也無所謂,去多收集幾個就好了~~

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題