python与数据库的交互和解析字符串?

时间:2012-10-11 02:17:26

标签: python sql

我有以下代码

from bs4 import BeautifulSoup
from stripogram import html2text
import commands
import os
import urllib2
import sys
import re
import string
response = urllib2.urlopen(sys.argv[1])
html = response.read()
soup = BeautifulSoup(html)
outter = soup.find("div",{"id":"ps-content", "class":"bucket"})
final = outter.find("div", {"class":"buying"})
text = final.findAll(text=True)
asd = str(final)
print os.system("echo '"  +asd + "'| html2text" )

并输出

Publication Date: February 1996  | ISBN-10: 0471121207   | ISBN-13: 978-
0471121206  | Edition: 2

我需要做以下两件事:

  1. 阅读所有初始信息,例如"发布日期:" " ISBN-10" 并将其识别为属性

  2. 在我们知道它是一个属性后,我想将它上传到一个sql数据库,以便发布日期是它所到达的列。所有这些都假设是一行。

  3. 编辑:我知道如何使用PHP和Java的数据库。我只是要求输出的语法上传。有没有办法写一个" Something:识别属性:value |属性:上面的值模式?

    我主要想把上面的答案读入一个数组。第一部分,"前面的部分:"是关键,它之后的部分(":")是值

    请评论您的代码。 感谢

2 个答案:

答案 0 :(得分:3)

看起来您正在尝试抓取网页并将收集的数据插入数据库。你需要编写的主要组件是筛选出你不感兴趣的垃圾的部分,并在Python变量中存储你感兴趣的东西(听起来你对属性感兴趣)。

从那里,您需要在某种数据库中执行插入操作。 Sqlite可能是最容易使用的,因为它可以作为文件存储在硬盘上。导入sqlite3并阅读http://docs.python.org/library/sqlite3.html处的文档以开始使用sqlite3。其他数据库还有许多其他驱动程序。如果您打算使用SQL关系数据库,则需要预先设计SQL模式。

一般来说,整个过程繁琐而且不仅仅是一个问题而是一个任务,所以我认为没有人会提供你所寻求的代码解决方案。

答案 1 :(得分:0)

此时,Python中的几乎所有数据库API都遵循PEP 249 - Python Database API

  

此API已定义为鼓励相似性   用于访问数据库的Python模块。通过做这个,   我们希望实现一致性,从而更容易理解   模块,通常在数据库中更容易移植的代码,   以及来自Python的更广泛的数据库连接。

因此,应该为您提供任何数据库的一般语法。

有各种用于数据库访问的库,例如Psycopg2 for PostgreSQLsqlite3 module for SQLite。您使用哪一个取决于您要连接的数据库,但此时无关紧要,因为您没有任何代码,所以只需为您喜欢的任何一个编写它然后您应该能够轻松移植之后它们都使用了DB API。