-4

我有以下代码

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 数据库,以便发布日期是它所在的列。所有这些都假设是一排。

编辑:我知道如何将数据库与 PHP 和 Java 一起使用。鉴于我的输出,我只要求上传语法。有没有办法写一个“东西:识别属性:值|属性:上面的值模式?

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

请评论您的代码。谢谢

4

2 回答 2

3

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

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

一般来说,这整个过程很乏味,而且更像是一项任务而不是一个问题,所以我认为没有人会提供你所寻求的代码解决方案。

于 2012-10-11T02:31:40.593 回答
0

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

定义此 API 是为了鼓励用于访问数据库的 Python 模块之间的相似性。通过这样做,我们希望实现一致性,从而产生更容易理解的模块、通常更易于跨数据库移植的代码以及 Python 更广泛的数据库连接范围。

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

有各种用于数据库访问的库,例如用于 PostgreSQL 的 Psycopg2用于 SQLite 的 sqlite3 模块。您使用哪一个取决于您要连接到的数据库,但此时这并不重要,因为您没有任何代码,所以只需为您喜欢的任何一个编写它,然后您应该能够轻松移植稍后,因为他们都使用 DB API。

于 2012-10-11T02:47:24.640 回答