python-股票數據定向爬取


re.findall

soup.find_all

---------Q----

for i in ***:

***可以是什么類型,主要是關心什么類型的不可以

------------trackback用法------------

>>>
>>> import traceback
>>> try:
... 1/0
... except (Exception,e):
... traceback.print_exc()
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: division by zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 3, in <module>
NameError: name 'e' is not defined

(說是這樣報錯更加直觀

 http://blog.csdn.net/handsomekang/article/details/9373035

 

 

--------------有毛病,睡了--------------

  1. #CrawBaiduStocksB.py
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import traceback
  5. import re
  6.  
  7. def getHTMLText(url, code="utf-8"):
  8.     try:
  9.         requests.get(url)
  10.         r.raise_for_status()
  11.         r.encoding code
  12.         return r.text
  13.     except:
  14.         return ""
  15.  
  16. def getStockList(lst, stockURL):
  17.     html getHTMLText(stockURL, "GB2312")
  18.     soup BeautifulSoup(html, 'html.parser'
  19.     soup.find_all('a')
  20.     for in a:
  21.         try:
  22.             href i.attrs['href']
  23.             lst.append(re.findall(r"[s][hz]\d{6}", href)[0])
  24.         except:
  25.             continue
  26.  
  27. def getStockInfo(lst, stockURL, fpath):
  28.     count 0
  29.     for stock in lst:
  30.         url stockURL stock ".html"
  31.         html getHTMLText(url)
  32.         try:
  33.             if html=="":
  34.                 continue
  35.             infoDict {}
  36.             soup BeautifulSoup(html, 'html.parser')
  37.             stockInfo soup.find('div',attrs={'class':'stock-bets'})
  38.  
  39.             name stockInfo.find_all(attrs={'class':'bets-name'})[0]
  40.             infoDict.update({'股票名稱': name.text.split()[0]})
  41.              
  42.             keyList stockInfo.find_all('dt')
  43.             valueList stockInfo.find_all('dd')
  44.             for in range(len(keyList)):
  45.                 key keyList[i].text
  46.                 val valueList[i].text
  47.                 infoDict[key] val
  48.              
  49.             with open(fpath, 'a', encoding='utf-8') as f:
  50.                 f.write( str(infoDict) '\n' )
  51.                 count count 1
  52.                 print("\r當前進度: {:.2f}%".format(count*100/len(lst)),end="")
  53.         except:
  54.             count count 1
  55.             print("\r當前進度: {:.2f}%".format(count*100/len(lst)),end="")
  56.             continue
  57.  
  58. def main():
  59.     stock_list_url 'http://quote.eastmoney.com/stocklist.html'
  60.     stock_info_url 'https://gupiao.baidu.com/stock/'
  61.     output_file 'D:/BaiduStockInfo.txt'
  62.     slist=[]
  63.     getStockList(slist, stock_list_url)
  64.     getStockInfo(slist, stock_info_url, output_file)
  65.  
  66. main()
  67. ---------------------------------------------
    1. #CrawBaiduStocksA.py
    2. import requests
    3. from bs4 import BeautifulSoup
    4. import traceback
    5. import re
    6.  
    7. def getHTMLText(url):
    8.     try:
    9.         requests.get(url)
    10.         r.raise_for_status()
    11.         r.encoding r.apparent_encoding
    12.         return r.text
    13.     except:
    14.         return ""
    15.  
    16. def getStockList(lst, stockURL):
    17.     html getHTMLText(stockURL)
    18.     soup BeautifulSoup(html, 'html.parser'
    19.     soup.find_all('a')
    20.     for in a:
    21.         try:
    22.             href i.attrs['href']
    23.             lst.append(re.findall(r"[s][hz]\d{6}", href)[0])
    24.         except:
    25.             continue
    26.  
    27. def getStockInfo(lst, stockURL, fpath):
    28.     for stock in lst:
    29.         url stockURL stock ".html"
    30.         html getHTMLText(url)
    31.         try:
    32.             if html=="":
    33.                 continue
    34.             infoDict {}
    35.             soup BeautifulSoup(html, 'html.parser')
    36.             stockInfo soup.find('div',attrs={'class':'stock-bets'})
    37.  
    38.             name stockInfo.find_all(attrs={'class':'bets-name'})[0]
    39.             infoDict.update({'股票名稱': name.text.split()[0]})
    40.              
    41.             keyList stockInfo.find_all('dt')
    42.             valueList stockInfo.find_all('dd')
    43.             for in range(len(keyList)):
    44.                 key keyList[i].text
    45.                 val valueList[i].text
    46.                 infoDict[key] val
    47.              
    48.             with open(fpath, 'a', encoding='utf-8') as f:
    49.                 f.write( str(infoDict) '\n' )
    50.         except:
    51.             traceback.print_exc()
    52.             continue
    53.  
    54. def main():
    55.     stock_list_url 'http://quote.eastmoney.com/stocklist.html'
    56.     stock_info_url 'https://gupiao.baidu.com/stock/'
    57.     output_file 'D:/BaiduStockInfo.txt'
    58.     slist=[]
    59.     getStockList(slist, stock_list_url)
    60.     getStockInfo(slist, stock_info_url, output_file)
    61.  
    62. main()
  68. -------------------學校這破網,讓我開始懷疑人生了-------吃屎,強力吃屎,學校吃屎了?ta為什么要吃屎呢?-------
  69. {'股票名稱': '東方財富', '今開': '14.99', '成交量': '30.00萬手', '最高': '15.05', '漲停': '16.49', '內盤': '16.75萬手', '成交額': '4.47億', '委比': '62.20%', '流通市值': '393.26億', '市盈率MRQ': '74.03', '每股收益': '0.20', '總股本': '35.58億', '昨收': '14.99', '換手率': '1.13%', '最低': '14.83', '跌停': '\n 13.49', '外盤': '13.25萬手', '振幅': '1.47%', '量比': '0.70', '總市值': '528.41億', '市凈率': '4.12', '每股凈資產': '3.60', '流通股本': '26.48億'}
    {'股票名稱': '東方財富', '今開': '14.99', '成交量': '30.00萬手', '最高': '15.05', '漲停': '16.49', '內盤': '16.75萬手', '成交額': '4.47億', '委比': '62.20%', '流通市值': '393.26億', '市盈率MRQ': '74.03', '每股收益': '0.20', '總股本': '35.58億', '昨收': '14.99', '換手率': '1.13%', '最低': '14.83', '跌停': '\n 13.49', '外盤': '13.25萬手', '振幅': '1.47%', '量比': '0.70', '總市值': '528.41億', '市凈率': '4.12', '每股凈資產': '3.60', '流通股本': '26.48億'}
    {'股票名稱': 'R003'}
    {'股票名稱': 'R003'}
    {'股票名稱': 'R007'}
    {'股票名稱': 'R007'}
    {'股票名稱': 'R014'}
    {'股票名稱': 'R028'}
    {'股票名稱': 'R091'}
    {'股票名稱': 'R182'}
    {'股票名稱': 'R014'}
    {'股票名稱': 'R001'}
    {'股票名稱': 'R028'}
    {'股票名稱': 'R002'}
    {'股票名稱': 'R091'}
    {'股票名稱': 'R004'}
    {'股票名稱': 'R182'}
    {'股票名稱': 'RC001'}
    {'股票名稱': 'R001'}
    {'股票名稱': 'RC003'}
    {'股票名稱': 'R002'}
    {'股票名稱': 'RC007'}
    {'股票名稱': '0504R007'}
    {'股票名稱': 'R004'}
    {'股票名稱': '0504R028'}
    {'股票名稱': 'RC001'}
    {'股票名稱': '0504R091'}
    {'股票名稱': 'RC003'}
    {'股票名稱': 'RC007'}
    {'股票名稱': '0504R007'}
    {'股票名稱': '0512R007'}
    {'股票名稱': '0504R028'}
    {'股票名稱': '0512R028'}
    {'股票名稱': '0504R091'}
    {'股票名稱': '0512R091'}
    {'股票名稱': '0512R007'}
    {'股票名稱': '0603R007'}
    {'股票名稱': '0512R028'}
    {'股票名稱': '0603R028'}
    {'股票名稱': '0512R091'}
    {'股票名稱': '0603R091'}
    {'股票名稱': 'GC001'}
    {'股票名稱': 'GC002'}
    {'股票名稱': 'GC003'}
    {'股票名稱': 'GC004'}
    {'股票名稱': '0603R007'}
    {'股票名稱': 'GC007'}
    {'股票名稱': 'GC014'}
    {'股票名稱': 'GC028'}
    {'股票名稱': 'GC091'}
    {'股票名稱': 'GC182'}
    {'股票名稱': '基金金泰'}
    {'股票名稱': '基金泰和'}
    {'股票名稱': '基金安信'}
    {'股票名稱': '基金漢盛'}
    {'股票名稱': '基金裕陽'}
    {'股票名稱': '基金景陽'}
    {'股票名稱': '基金興華'}
    {'股票名稱': 'GC001'}
    {'股票名稱': '基金金鑫'}
    {'股票名稱': '基金漢興'}
    {'股票名稱': 'GC002'}
    {'股票名稱': 'GC003'}
    {'股票名稱': 'GC004'}
    {'股票名稱': 'GC007'}
    {'股票名稱': 'GC014'}
    {'股票名稱': 'GC028'}
    {'股票名稱': 'GC091'}
    {'股票名稱': 'GC182'}
    {'股票名稱': '基金金泰'}
    {'股票名稱': '基金泰和'}
    {'股票名稱': '基金安信'}
    {'股票名稱': '基金科訊'}
    {'股票名稱': '基金漢盛'}
    {'股票名稱': '基金通乾', '最高': '--', '最低': '--', '今開': '--', '昨收': '0.94', '成交額': '--', '成交量': '--', '凈值': '0.9515', '折價率': '-1.42'}
    {'股票名稱': '基金裕陽'}
    {'股票名稱': '基金科瑞', '最高': '--', '最低': '--', '今開': '--', '昨收': '0.82', '成交額': '--', '成交量': '--', '凈值': '0.8540', '折價率': '-3.40'}
    {'股票名稱': '基金景陽'}
    {'股票名稱': '基金銀豐', '最高': '0.97', '最低': '0.96', '今開': '0.96', '昨收': '0.97', '成交額': '1533.12萬', '成交量': '15.85萬手', '凈值': '1.0420', '折價率': '-7.01'}
    {'股票名稱': '基金興華'}
    {'股票名稱': '國金鑫新', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.02', '成交額': '9.52萬', '成交量': '925手', '凈值': '1.0370', '折價率': '-0.68'}
    {'股票名稱': '財通多策略(LOF)', '最高': '1.05', '最低': '1.05', '今開': '1.05', '昨收': '1.05', '成交額': '232.03萬', '成交量': '2.21萬手', '凈值': '1.0560', '折價率': '-0.28'}
    {'股票名稱': '基金金鑫'}
    {'股票名稱': '基金漢興'}
    {'股票名稱': '長信中證能源', '最高': '1.06', '最低': '1.05', '今開': '1.06', '昨收': '1.06', '成交額': '2745', '成交量': '26手', '凈值': '1.0530', '折價率': '-0.28'}
    {'股票名稱': '基金科訊'}
    {'股票名稱': '精准醫療', '最高': '1.02', '最低': '1.01', '今開': '1.01', '昨收': '1.01', '成交額': '5.93萬', '成交量': '586手', '凈值': '1.0140', '折價率': '0.20'}
    {'股票名稱': '互聯醫療', '最高': '0.99', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '1574', '成交量': '16手', '凈值': '0.9879', '折價率': '-0.29'}
    {'股票名稱': '基金通乾', '最高': '--', '最低': '--', '今開': '--', '昨收': '0.94', '成交額': '--', '成交量': '--', '凈值': '0.9515', '折價率': '-1.42'}
    {'股票名稱': '基金科瑞', '最高': '--', '最低': '--', '今開': '--', '昨收': '0.82', '成交額': '--', '成交量': '--', '凈值': '0.8540', '折價率': '-3.40'}
    {'股票名稱': '基金銀豐', '最高': '0.97', '最低': '0.96', '今開': '0.96', '昨收': '0.97', '成交額': '1533.12萬', '成交量': '15.85萬手', '凈值': '1.0420', '折價率': '-7.01'}
    {'股票名稱': '國金鑫新', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.02', '成交額': '9.52萬', '成交量': '925手', '凈值': '1.0370', '折價率': '-0.68'}
    {'股票名稱': '互聯醫C', '最高': '0.98', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '13.53萬', '成交量': '1377手', '凈值': '0.9869', '折價率': '-0.50'}
    {'股票名稱': '財通多策略(LOF)', '最高': '1.05', '最低': '1.05', '今開': '1.05', '昨收': '1.05', '成交額': '232.03萬', '成交量': '2.21萬手', '凈值': '1.0560', '折價率': '-0.28'}
    {'股票名稱': '生物科技', '最高': '1.03', '最低': '1.01', '今開': '1.02', '昨收': '1.02', '成交額': '1.66萬', '成交量': '163手', '凈值': '1.0192', '折價率': '0.08'}
    {'股票名稱': '長信中證能源', '最高': '1.06', '最低': '1.05', '今開': '1.06', '昨收': '1.06', '成交額': '2745', '成交量': '26手', '凈值': '1.0530', '折價率': '-0.28'}
    {'股票名稱': '生物科C', '最高': '1.05', '最低': '1.01', '今開': '1.05', '昨收': '1.03', '成交額': '15.58萬', '成交量': '1532手', '凈值': '1.0182', '折價率': '1.26'}
    {'股票名稱': '精准醫療', '最高': '1.02', '最低': '1.01', '今開': '1.01', '昨收': '1.01', '成交額': '5.93萬', '成交量': '586手', '凈值': '1.0140', '折價率': '0.20'}
    {'股票名稱': '中葯基金', '最高': '1.07', '最低': '1.05', '今開': '1.07', '昨收': '1.06', '成交額': '16.61萬', '成交量': '1568手', '凈值': '1.0644', '折價率': '-0.32'}
    {'股票名稱': '互聯醫療', '最高': '0.99', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '1574', '成交量': '16手', '凈值': '0.9879', '折價率': '-0.29'}
    {'股票名稱': '中葯C', '最高': '1.12', '最低': '1.06', '今開': '1.06', '昨收': '1.06', '成交額': '4825', '成交量': '45手', '凈值': '--', '折價率': '--'}
    {'股票名稱': '互聯醫C', '最高': '0.98', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '13.53萬', '成交量': '1377手', '凈值': '0.9869', '折價率': '-0.50'}
    {'股票名稱': '財通升級', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '1667.72萬', '成交量': '16.22萬手', '凈值': '1.0780', '折價率': '-4.55'}
    {'股票名稱': '生物科技', '最高': '1.03', '最低': '1.01', '今開': '1.02', '昨收': '1.02', '成交額': '1.66萬', '成交量': '163手', '凈值': '1.0192', '折價率': '0.08'}
    {'股票名稱': '國泰融豐', '最高': '0.98', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '50.69萬', '成交量': '5192手', '凈值': '1.0445', '折價率': '-6.56'}
    {'股票名稱': '生物科C', '最高': '1.05', '最低': '1.01', '今開': '1.05', '昨收': '1.03', '成交額': '15.58萬', '成交量': '1532手', '凈值': '1.0182', '折價率': '1.26'}
    {'股票名稱': '南方原油', '最高': '0.99', '最低': '0.98', '今開': '0.98', '昨收': '0.96', '成交額': '1989.58萬', '成交量': '20.22萬手', '凈值': '0.9821', '折價率': '0.19'}
    {'股票名稱': '中葯基金', '最高': '1.07', '最低': '1.05', '今開': '1.07', '昨收': '1.06', '成交額': '16.61萬', '成交量': '1568手', '凈值': '1.0644', '折價率': '-0.32'}
    {'股票名稱': '香港中小', '最高': '1.20', '最低': '1.18', '今開': '1.20', '昨收': '1.20', '成交額': '511.41萬', '成交量': '4.29萬手', '凈值': '1.2041', '折價率': '-0.92'}
    {'股票名稱': '中葯C', '最高': '1.12', '最低': '1.06', '今開': '1.06', '昨收': '1.06', '成交額': '4825', '成交量': '45手', '凈值': '--', '折價率': '--'}
    {'股票名稱': '銀華鑫盛', '最高': '0.95', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '816.75萬', '成交量': '8.62萬手', '凈值': '1.0090', '折價率': '-5.95'}
    {'股票名稱': '財通升級', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '1667.72萬', '成交量': '16.22萬手', '凈值': '1.0780', '折價率': '-4.55'}
    {'股票名稱': '鵬華港中小企', '最高': '1.10', '最低': '1.08', '今開': '1.09', '昨收': '1.09', '成交額': '46.32萬', '成交量': '4251手', '凈值': '1.0987', '折價率': '-0.88'}
    {'股票名稱': '國泰融豐', '最高': '0.98', '最低': '0.98', '今開': '0.98', '昨收': '0.98', '成交額': '50.69萬', '成交量': '5192手', '凈值': '1.0445', '折價率': '-6.56'}
    {'股票名稱': '香港銀行', '最高': '1.05', '最低': '1.04', '今開': '1.05', '昨收': '1.05', '成交額': '9.90萬', '成交量': '946手', '凈值': '1.0448', '折價率': '0.02'}
    {'股票名稱': '南方原油', '最高': '0.99', '最低': '0.98', '今開': '0.98', '昨收': '0.96', '成交額': '1989.58萬', '成交量': '20.22萬手', '凈值': '0.9821', '折價率': '0.19'}
    {'股票名稱': '香港中小', '最高': '1.20', '最低': '1.18', '今開': '1.20', '昨收': '1.20', '成交額': '511.41萬', '成交量': '4.29萬手', '凈值': '1.2041', '折價率': '-0.92'}
    {'股票名稱': '財通多策略福享', '最高': '0.94', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '141.30萬', '成交量': '1.50萬手', '凈值': '1.0018', '折價率': '-6.07'}
    {'股票名稱': '銀華鑫盛', '最高': '0.95', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '816.75萬', '成交量': '8.62萬手', '凈值': '1.0090', '折價率': '-5.95'}
    {'股票名稱': '財通福瑞', '最高': '0.94', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '363.14萬', '成交量': '3.87萬手', '凈值': '1.0154', '折價率': '-7.33'}
    {'股票名稱': '鵬華港中小企', '最高': '1.10', '最低': '1.08', '今開': '1.09', '昨收': '1.09', '成交額': '46.32萬', '成交量': '4251手', '凈值': '1.0987', '折價率': '-0.88'}
    {'股票名稱': '紅利基金', '最高': '1.04', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '537.41萬', '成交量': '5.18萬手', '凈值': '1.0403', '折價率': '-0.03'}
    {'股票名稱': '香港銀行', '最高': '1.05', '最低': '1.04', '今開': '1.05', '昨收': '1.05', '成交額': '9.90萬', '成交量': '946手', '凈值': '1.0448', '折價率': '0.02'}
    {'股票名稱': '環境治理', '最高': '1.08', '最低': '1.05', '今開': '1.06', '昨收': '1.06', '成交額': '20.17萬', '成交量': '1901手', '凈值': '1.0657', '折價率': '0.12'}
    {'股票名稱': '財通多策略福享', '最高': '0.94', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '141.30萬', '成交量': '1.50萬手', '凈值': '1.0018', '折價率': '-6.07'}
    {'股票名稱': '環境C', '最高': '1.10', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '18.35萬', '成交量': '1743手', '凈值': '1.0654', '折價率': '-0.23'}
    {'股票名稱': '財通福瑞', '最高': '0.94', '最低': '0.94', '今開': '0.94', '昨收': '0.94', '成交額': '363.14萬', '成交量': '3.87萬手', '凈值': '1.0154', '折價率': '-7.33'}
    {'股票名稱': '50AH', '最高': '1.03', '最低': '1.02', '今開': '1.02', '昨收': '1.02', '成交額': '66.03萬', '成交量': '6448手', '凈值': '1.0250', '折價率': '0.10'}
    {'股票名稱': '紅利基金', '最高': '1.04', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '537.41萬', '成交量': '5.18萬手', '凈值': '1.0403', '折價率': '-0.03'}
    {'股票名稱': '海富通全球(人民幣)', '最高': '1.01', '最低': '1.01', '今開': '1.01', '昨收': '1.01', '成交額': '99.06萬', '成交量': '9820手', '凈值': '1.0090', '折價率': '0.00'}
    {'股票名稱': '環境治理', '最高': '1.08', '最低': '1.05', '今開': '1.06', '昨收': '1.06', '成交額': '20.17萬', '成交量': '1901手', '凈值': '1.0657', '折價率': '0.12'}
    {'股票名稱': '500等權', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '1.20萬', '成交量': '116手', '凈值': '1.0450', '折價率': '-1.05'}
    {'股票名稱': '環境C', '最高': '1.10', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '18.35萬', '成交量': '1743手', '凈值': '1.0654', '折價率': '-0.23'}
    {'股票名稱': '50AH', '最高': '1.03', '最低': '1.02', '今開': '1.02', '昨收': '1.02', '成交額': '66.03萬', '成交量': '6448手', '凈值': '1.0250', '折價率': '0.10'}
    {'股票名稱': '500等權A', '最高': '1.08', '最低': '1.05', '今開': '1.07', '昨收': '1.05', '成交額': '7.41萬', '成交量': '691手', '凈值': '1.0130', '折價率': '3.85'}
    {'股票名稱': '海富通全球(人民幣)', '最高': '1.01', '最低': '1.01', '今開': '1.01', '昨收': '1.01', '成交額': '99.06萬', '成交量': '9820手', '凈值': '1.0090', '折價率': '0.00'}
    {'股票名稱': '500等權B', '最高': '1.01', '最低': '1.01', '今開': '1.01', '昨收': '1.01', '成交額': '4032', '成交量': '40手', '凈值': '1.0770', '折價率': '-6.41'}
    {'股票名稱': '易基軍工分級', '最高': '1.15', '最低': '1.14', '今開': '1.14', '昨收': '1.13', '成交額': '119.38萬', '成交量': '1.04萬手', '凈值': '1.1523', '折價率': '-0.63'}
    {'股票名稱': '500等權', '最高': '1.03', '最低': '1.03', '今開': '1.03', '昨收': '1.03', '成交額': '1.20萬', '成交量': '116手', '凈值': '1.0450', '折價率': '-1.05'}
    {'股票名稱': '易基軍工A', '最高': '1.03', '最低': '1.02', '今開': '1

  70. 大致就是這個樣子。。。。。。。
  71. 噗,破網速,噗,噗噗,噗噗噗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM