爬取上交所信息

      當遇到JS渲染時,很難找到正確的url,上交所就是一個比較典型的例子。在doc和xhr也沒找到入口,最後在js中找到。成功以後即可進行後面數據爬取和分析。數據可視化部分下週抽時間寫,最近在公司寫Java爬蟲,做信貸方面大數據分析,對爬蟲歸類和識別正確的入口很重要,其次就是總頁數下一頁,解析頁(自己寫來玩就沒必要了)。這樣做的目的可以在框架下產生大量爬蟲,在加上批處理,很嚇人。

 

找到對應js後,查看請求頭裏面的url,

 

# -*- coding: utf-8 -*-
"""


@author: yyl
"""

import requests
from urllib.parse import quote
import time
from random import sample,choice

  
    
headers = {
    'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',
    'Referer': 'http://www.sse.com.cn/assortment/stock/list/share/'
}

#請求頁面
def requests_one_page(url,parmas):
    try:
        
        r = requests.get(url, headers=headers)
        print(r.text)
    except:
        print("error")
        
       



def main():
   

    url = "http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback59522&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=1&pageHelp.pageSize=25&pageHelp.pageNo=1&_=1564755528542"
    

    parmas = {'callback': 'fetchJSON_comment98vv402',
          'productId': '100003671742', 
          'score': '0',
          'sortType': '5',
          'page': '0', 
          'pageSize': '10',
          'isShadowSku': '0',
          'fold': '1',

          'jsonCallBack': 'jsonpCallback59522',
               'isPagination':'true',
               'pageHelp.cacheSize': '1',
               'pageHelp.beginPage': '1',
               'pageHelp.pageSize': '25',
               'pageHelp.pageNo': '1',
               '_': '1564755528542'
              }

    requests_one_page(url,parmas)
   

if  __name__=="__main__":
    #main()
    s=time.time()
    main()
    e=time.time()
    print("完成!!時間爲:{}".format(e-s))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章