我已经使用Selenium + Python从网站上抓取了数据。 它将数据存储在列表中,并且在打印列表时看起来像:
for x in list:
print(x.text)
输出:
status1
some.email@email
status2
another.email@email
//There are more than 3500 elements in list.
我想将数据推送到已经创建的MySQL表中。 MySQL表的理想布局为:
| ID | EMAIL | STATUS | TIMESTAMP |
|-----|--------------------|---------|--------------------|
| 01 | some.email@email | status1 | current Timestamp |
| 02 | another.email@email| status2 | current Timestamp |
//A lot of rows.....
我不知道使用Python连接数据库并推送数据的方法。我已经尝试过类似的操作,但是我无法做到这一点。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
passwd="yourpassword",
database="mydatabase"
)
for x in list:
sql = "UPDATE customers SET Status='x'"
先谢谢了。
答案 0 :(得分:0)
首先,您需要安装pymsql,一旦安装了pymysql,便可以用以下方式配置连接:
import pymysql
import pymysql.cursors
your_host="localhost",
your_user="yourusername",
your_passwd="yourpassword",
your_database="mydatabase"
EMAIL="some.email@email"
STATUS="STATUS1"
YOUR_DATE="2018-08-03"
connection=pymysql.connect(host=your_host,port=3306,user=your_user,passwd=your_passwd,db=your_database)
cursor=connection.cursor(pymysql.cursors.DictCursor)
sql = "INSERT INTO YOUR_TABLE VALUES(ID,%s,%s,%s)"
cursor.execute(query, (EMAIL,STATUS,YOUR_DATE))
cursor.connection.commit()
cursor.close()
这是一个非常基本的示例,希望对您有所帮助。