python从百度捉股票值

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# BeautifulSoup
# https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#Changing%20attribute%20values
# 需要安装 BeautifulSoup 和 lxml

# 360股票
# https://www.baidu.com/s?wd=360%E8%82%A1%E7%A5%A8
# <span class="op-stockdynamic-moretab-cur-num c-gap-right-small">22.90</span>

import requests
from bs4 import BeautifulSoup

def requestMultiStock(stock_name_list):
    """爬取多个"""
    for stock_name in stock_name_list:
        requestOneStock(stock_name)

def requestOneStock(stock_name):
    # 请求一个百度请求地址
    # 百度https会重定向到http
    # target_url = "http://www.baidu.com/s?wd=360%E8%82%A1%E7%A5%A8"
    target_url = r"""http://www.baidu.com/s?wd="""+stock_name
    requestOneStockUrl(stock_name, target_url)

def requestOneStockUrl(stock_name, target_url):
    # 把一个股票名合成一个地址
    resp = requests.get(url = target_url)
    if(resp.status_code != 200):
        print("open url "+target_url+ " error")
        return 
    getStockValue(stock_name, resp.content)

def getStockValue(stock_name, content):
    #解析出股票市值
    bf=BeautifulSoup(content,'lxml')
    span = bf.find_all(class_ = "op-stockdynamic-moretab-cur-num c-gap-right-small")
    """[<span class="op-stockdynamic-moretab-cur-num c-gap-right-small">23.21</span>"""
    span_bf=BeautifulSoup(str(span[0]),'lxml')
    print(stock_name+":"+span_bf.text)
    pass

if __name__ == '__main__':
    
    print("================")
    print("    start")
    print("================")

    stock_names = []
    stock_names.append("360股票")
    
    requestMultiStock(stock_names)
    print("================")
    print("    end")
    print("================")
    
    pass
 

猜你喜欢

转载自my.oschina.net/u/4000302/blog/2978283
今日推荐