-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

次の2つのことを行う必要があります。

  1. 「Publication Date:」「ISBN-10」などの初期情報をすべて読み取り、 属性として認識します

  2. それが属性であることがわかったら、それをSQLデータベースにアップロードして、発行日がその列になるようにします。これらはすべて 1 つの行であると想定されます。

EDIT: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はPEP249-PythonデータベースAPIに準拠しています。

このAPIは、データベースへのアクセスに使用されるPythonモジュール間の類似性を促進するために定義されています。これを行うことで、より理解しやすいモジュール、一般的にデータベース間でより移植性の高いコード、およびPythonからのデータベース接続のより広い範囲につながる一貫性を実現したいと考えています。

これで、データベースの一般的な構文がわかります。

PostgreSQL用のPsycopg2やSQLite用のsqlite3モジュールなど、データベースアクセス用のさまざまなライブラリがあります。どちらを使用するかは、接続するデータベースによって異なりますが、コードがないため、この時点では問題になりません。好きなコードを記述すれば、簡単に移植できるはずです。それらはすべてDBAPIを使用するため、後で使用します。

于 2012-10-11T02:47:24.640 に答える