簡體   English   中英

Pandas 數據框在 mysql 數據庫中插入每個值

[英]Pandas dataframe insert every value in mysql database

我有一個可以抓取域名的 python 腳本。 我只是解析了 json 響應,因為它呈現 html 代碼。 我使用 Pandas 讀取 html 並獲取body ,即 html 內容。 我試圖打印它,然后我得到了正確的值。 現在我明白了,我想將每個結果保存在 mysql 數據庫中。 我怎么能做到呢?

這是我的腳本

mydb = mysql.connector.connect(
   host="localhost",
   user="root",
   passwd="",
   database='domainscrape'
)

mycursor = mydb.cursor()
print(mydb)


pageNumber = 0
while True:
    driver.implicitly_wait(3)
    driver.get('https://reversewhois.domaintools.com/?ajax=mReverseWhois&call=ajaxGetPreviewPage&q=%5B%5B%5B%22whois%22%2C%222%22%2C%22VerifiedID%40SG-Mandatory%22%5D%5D%5D&o='+str(pageNumber))
    time.sleep(3)
    pre = driver.find_element_by_tag_name("pre").text
    data = json.loads(pre)
    if data['body']:
        table = data['body']
        tables = pd.read_html(table,skiprows=1)
        df = tables[-1]
        print(df.to_string(index=False))
        pageNumber += 1
        continue
    else:
        break

我得到了這樣的結果

  0vh-cl0ud.sg  2017-10-12                                 KEY-SYSTEMS GMBH
  0vh-cloud.sg  2017-10-12                                 KEY-SYSTEMS GMBH
  0vhcloud.sg   2017-10-12                                 KEY-SYSTEMS GMB

嘗試將它保存到一個 csv 文件,我得到了很好的結果

df.to_csv('Domains.csv', mode='a', sep=',',index=False)

但我不想將 csv 導入 mysql。 我只想直接在其中插入現有 mysql 表中的行。

我怎么能把它格式化成0vh-cl0ud.sg是域2017-10-12是日期, KEY-SYSTEMS GMBH是公司? 我不包括標題,因為在每次迭代中它都會打印標題而我不想要它。

它應該是這樣的:

mycursor = mydb.cursor()
mycursor.execute("INSERT INTO table_name(domain, date, company) VALUES ('0vh-cl0ud.sg', '2017-10-12', 'KEY-SYSTEMS GMBH'))"

這塊應該在數據被抓取后放入循環中。 請在評論中瀏覽上述鏈接,以便更好地了解該過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM