美文网首页
python爬取股票信息

python爬取股票信息

作者: 有苦向瓜诉说 | 来源:发表于2017-03-19 20:52 被阅读0次
    import requests
    from bs4 import BeautifulSoup
    import traceback
    import re
     
    def getHTMLText(url, code="utf-8"):
        try:
            r = requests.get(url)
            r.raise_for_status()
            r.encoding = code
            return r.text
        except:
            return ""
    
    def getStockList(lst, stockURL):
        html = getHTMLText(stockURL, "GB2312")
        soup = BeautifulSoup(html, 'html.parser') 
        a = soup.find_all('a')
        for i in a:
            try:
                href = i.attrs['href']
                lst.append(re.findall(r"[s][hz]\d{6}", href)[0])
            except:
                continue
    
    def getStockInfo(lst,stockURL,fpath):
        count=0
        for stock in lst:
            url=stockURL+stock+'.html'
            html=getHTMLText(url)
            try:
                if html=='':
                    continue
                soup=BeautifulSoup(html,'html.parser')
                stockInfo=soup.find('div',attrs={'class':'stock-info'})
                if stockInfo is None:
                    continue
                name=stockInfo.find('a',attrs={'class':'bets-name'}).get_text().split()[0]
                stockDict={}
                stockDict.update({'名称':name})
    
                dt=stockInfo.find_all('dt')
                dd=stockInfo.find_all('dd')
                for i in range(len(dt)):
                    stockDict[dt[i].text]=dd[i].text
                with open(fpath,'a',encoding='utf-8') as f:
                    f.write(str(stockDict)+'\n')
                    count=count+1
                    print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")
            except:
                traceback.print_exc()
                count=count+1
                print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")
                continue
    def main():
        stock_list_url = 'http://quote.eastmoney.com/stocklist.html'
        stock_info_url = 'https://gupiao.baidu.com/stock/'
        output_file = 'try.txt'
        slist=[]
        getStockList(slist, stock_list_url)
        getStockInfo(slist, stock_info_url, output_file)
     
    main()

    相关文章

      网友评论

          本文标题:python爬取股票信息

          本文链接:https://www.haomeiwen.com/subject/yvevnttx.html