使用 python 将 rss 提要导入 MySQL 数据库
import rss feeds into MySQL database using python
我正在尝试使用 python 将提要导入到托管在 pythoneverywhere 上的 Mysql 数据库中,但我似乎无法让它工作。这是我正在使用的代码。
import MySQLdb
import feedparser
myfeed = feedparser.parse("http://www.couponchief.com/rss/")
for item in myfeed['items']:
title = item.title
link = item.link
description = item.description
print title
print link
print description
db =
MySQLdb.connect('mysql.server','lesmun','*******','lesmun$default');
with db:
cur = db.cursor()
cur.execute("INSERT INTO ini(title, link, description)VALUES(%s,
%s, %s)", (title,link,description))
print 'Succesfull!'
# close the cursor
cur.close()
# close the connection
db.close ()
有什么建议吗?
可能您使用的是旧版本的 MySQLdb,它不支持自动提交事务的上下文管理器。
您可以升级到最新版本,make your own,或者您可以在关闭连接之前显式调用 db.commit()
。
此外,没有必要(或不需要)为您插入的每一行建立到数据库的新连接和创建新游标。你的代码最好这样写:
import MySQLdb
import feedparser
myfeed = feedparser.parse("http://www.couponchief.com/rss/")
# get connection and cursor upfront, before entering loop
with MySQLdb.connect('mysql.server','lesmun','*******','lesmun$default') as db:
cur = db.cursor()
for item in myfeed['items']:
title = item.title
link = item.link
description = item.description
print title
print link
print description
cur.execute("INSERT INTO ini (title, link, description) VALUES (%s, %s, %s)", (title, link, description))
print 'Succesfull!'
# db.commit() # for older MySQLdb drivers
我正在尝试使用 python 将提要导入到托管在 pythoneverywhere 上的 Mysql 数据库中,但我似乎无法让它工作。这是我正在使用的代码。
import MySQLdb
import feedparser
myfeed = feedparser.parse("http://www.couponchief.com/rss/")
for item in myfeed['items']:
title = item.title
link = item.link
description = item.description
print title
print link
print description
db =
MySQLdb.connect('mysql.server','lesmun','*******','lesmun$default');
with db:
cur = db.cursor()
cur.execute("INSERT INTO ini(title, link, description)VALUES(%s,
%s, %s)", (title,link,description))
print 'Succesfull!'
# close the cursor
cur.close()
# close the connection
db.close ()
有什么建议吗?
可能您使用的是旧版本的 MySQLdb,它不支持自动提交事务的上下文管理器。
您可以升级到最新版本,make your own,或者您可以在关闭连接之前显式调用 db.commit()
。
此外,没有必要(或不需要)为您插入的每一行建立到数据库的新连接和创建新游标。你的代码最好这样写:
import MySQLdb
import feedparser
myfeed = feedparser.parse("http://www.couponchief.com/rss/")
# get connection and cursor upfront, before entering loop
with MySQLdb.connect('mysql.server','lesmun','*******','lesmun$default') as db:
cur = db.cursor()
for item in myfeed['items']:
title = item.title
link = item.link
description = item.description
print title
print link
print description
cur.execute("INSERT INTO ini (title, link, description) VALUES (%s, %s, %s)", (title, link, description))
print 'Succesfull!'
# db.commit() # for older MySQLdb drivers