• 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) ' ' )
    51.                 count count 1
    52.                 print(" 当前进度: {:.2f}%".format(count*100/len(lst)),end="")
    53.         except:
    54.             count count 1
    55.             print(" 当前进度: {:.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) ' ' )
      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', '跌停': ' 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', '跌停': ' 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. 噗,破网速,噗,噗噗,噗噗噗
    沙耶加是最棒的也是最强的,今天换我来拯救世界!
  • 相关阅读:
    模块的搜索路径
    循环导入问题
    模块的四种形式
    匿名函数
    面向过程编程
    内置函数
    名称空间和作用域
    函数嵌套
    函数对象
    可变长参数
  • 原文地址:https://www.cnblogs.com/wanghui626/p/6664242.html
Copyright © 2020-2023  润新知