日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库

發(fā)布時(shí)間:2023/12/10 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

pandas是一個(gè)數(shù)據(jù)處理模塊,前面也已經(jīng)提到了好些,用python寫爬蟲--4.5pandas存入excel.

這次來統(tǒng)一說一說,使用感想。

pandas主要是Seriers和Dataframe,Seriers相當(dāng)于list,dataframe相當(dāng)于excel表格,有行也有列。

這回主要還是說爬取下來的信息入庫的問題,假如是爬取頁面上的信息,像‘什么值得買’的價(jià)格信息啥的,這種就得一個(gè)個(gè)插入數(shù)據(jù)庫。但是像12306返回的是json,那就用pandas整理一下入庫,要方便的多。

還是舉個(gè)例子。這回爬取的格力電器的歷史行情。

網(wǎng)址:http://q.stock.sohu.com/cn/000651/lshq.shtml

要觀察信息的發(fā)送情況,在時(shí)間上做更改就能看到網(wǎng)站的發(fā)送情況。

image.png

還是F12.

image.png

接下來就方便多了。

import requests

def getdata(code,start='20171009',end='20171130'):

url ='http://q.stock.sohu.com/hisHq?code=cn_{}&start={}&end={}&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.625097909197931&0.266277122911587'

url1 = url.format(code,start,end)

return requests.get(url1).text

print(getdata('000567'))

可見返回的是

image.png

這不太像是一個(gè)標(biāo)準(zhǔn)的json格式,這只能用正則把有用的信息抓下來,然后轉(zhuǎn)成df。

import requests

import pandas as pd

import re

from sqlalchemy import create_engine

def getdata(code,start='20171009',end='20171130'):

url ='http://q.stock.sohu.com/hisHq?code=cn_{}&start={}&end={}&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.625097909197931&0.266277122911587'

url1 = url.format(code,start,end)

res = requests.get(url1).text

resp =re.search('{"status":0,"hq":(.*),"code"',res).group(1)

data =eval(resp)

df = pd.DataFrame(data=data)

df.columns=['date','open','close','change','changerate','high','low','vol','volnum','hsl']

df['code'] = code

con = create_engine('mysql://root:123456@localhost:3306/tushare?charset=utf8')

pd.io.sql.to_sql(df,'tick_data',con,schema='tushare',if_exists='append')

data =eval(resp)這是將str轉(zhuǎn)為list,爬取下來的信息都是str,提取[]里信息,data是規(guī)整的信息,轉(zhuǎn)化為dataframe比較合適。

create_engine():'數(shù)據(jù)庫類型+數(shù)據(jù)庫驅(qū)動(dòng)名稱://用戶名:口令@機(jī)器地址:端口號/數(shù)據(jù)庫名'

存入庫中就好了 pd.io.sql.to_sql(df,'tick_data',con,schema='tushare',if_exists='append')

df:要存入數(shù)據(jù)庫的dataframe名字

'tick_data':tablename

con:前面的連接數(shù)據(jù)庫信息

schema='tushare':數(shù)據(jù)庫名字

if_exists='append':存在就添加,不存在就創(chuàng)建

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。