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