1.python爬取东方财富股票信息

1.创建MySQL模块方便使用

import pymysql


class MysqlHelps:
    def __init__(self):
        self.connect = None
        self.mouse = None
        self.connect = pymysql.Connect(host="localhost", user="root", password="123456", db="school")
        self.mouse = self.connect.cursor()

    def execute(self, query, args=None):
        try:
            self.mouse.execute(query, args)
            self.connect.commit()
        except Exception:
            self.connect.rollback()

    def executemany(self, query, args=None):
        try:
            self.mouse.executemany(query, args)
            self.connect.commit()
        except Exception:
            self.connect.rollback()

    def fetchone(self):
        return self.mouse.fetchone()

    def fetchall(self):
        for i in self.mouse.fetchall():
            print(i)

    def __del__(self):
        if self.connect:
            self.connect.close()
            self.connect = None
        if self.mouse:
            self.mouse.close()
            self.mouse = None

2.导入模块,爬取网站

import mysqlhelp
my=mysqlhelp.MysqlHelps()


for i in range(1,440):
    url = f"https://datacenter-web.eastmoney.com/api/data/v1/get?callback=jQuery11230775925614526155_1682334680966&sortColumns=NOTICE_DATE%2CSUM%2CRECEIVE_START_DATE%2CSECURITY_CODE&sortTypes=-1%2C-1%2C-1%2C1&pageSize=50&pageNumber={i}&reportName=RPT_ORG_SURVEYNEW&columns=SECUCODE%2CSECURITY_CODE%2CSECURITY_NAME_ABBR%2CNOTICE_DATE%2CRECEIVE_START_DATE%2CRECEIVE_PLACE%2CRECEIVE_WAY_EXPLAIN%2CRECEPTIONIST%2CSUM&quoteColumns=f2~01~SECURITY_CODE~CLOSE_PRICE%2Cf3~01~SECURITY_CODE~CHANGE_RATE&quoteType=0&source=WEB&client=WEB&filter=(NUMBERNEW%3D%221%22)(IS_SOURCE%3D%221%22)(RECEIVE_START_DATE%3E%272020-04-24%27)"
    response = requests.get(url)
    data0=response.content.decode().split(");",)
    data1=data0[0].split("66(")
    try:
        i=json.loads(data1[1])
        for data in i["result"]["data"]:
            # time.sleep(random.randint(1,2))
            my.execute("insert into eastmoney(代码,名称,最新价,涨跌幅) values(%s,%s,%s,%s)",(data['SECURITY_CODE'],data['SECURITY_NAME_ABBR'],data['CLOSE_PRICE'],data['CHANGE_RATE']))
    except:
        pass

3.结果展示

posted @ 2023-04-25 19:27  向众神祈祷  阅读(528)  评论(2)    收藏  举报