【发布时间】:2018-06-17 19:12:31
【问题描述】:
下面是我的 selenium 网络爬虫的最后一部分,它循环遍历此 website page 的不同选项卡,选择“导出数据”按钮,下载数据,添加“yearid”列,然后将数据加载到MySQL 表。
df = pd.read_csv(desired_filepath)
df = df.replace('%','',regex=True)
df["yearid"] = datetime.today().year
df.to_csv(desired_filepath)
engine = create_engine("mysql+pymysql://{user}:{pw}@localhost/{db}"
.format(user="walker",
pw="password",
db="data"))
df.to_sql(con=engine, name='fg_test_hitting_{}'.format(button_text), if_exists='replace')
time.sleep(10)
driver.quit()
刮板效果很好,但是当数据加载到 MySQL 表中时,某些列在应该加载为数字时被加载为 TEXT,最好是 DOUBLE 数据类型。我注意到这只发生在字符串末尾有 % 符号的列名中(即 BB%)。我已经消除了列标题下方所有行中的 % 符号,但数据仍然作为 TEXT 加载到 MYSQL 中。在将数据加载到 MySQL 之前,是否有任何方法可以更改列名中具有 % 符号的所有列的数据类型?提前致谢!
【问题讨论】:
-
请缩小您的问题范围。回答您的(标题)问题真的需要整个 selenium 代码吗?
-
这个版本更好吗?
标签: python mysql pandas selenium sqlalchemy