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"eColumns=f2~01~SECURITY_CODE~CLOSE_PRICE%2Cf3~01~SECURITY_CODE~CHANGE_RATE"eType=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.结果展示


浙公网安备 33010602011771号