0

HTMLデータをスクレイピングするためにbeautifulsoupを使用しています。

私の問題は、出力に見たくない情報が表示されることです。そのため、正規表現を使用してその情報を削除しようとしましたが、

ただし、正規表現が苦手なので、スクリプトをここに置き、必要な出力を提供します。誰かが私を助けてくれることを願っています。

よろしく

私の出力は次のように表示されます:

<title>Music Games DVDs at JB Hi-Fi Australia</title>
Apple iPad mini 16GB Wi-Fi (Black) [Pick-up In-store Only] 
                        <span class="SKU">MD528X/A</span>
Apple iPad mini 16GB Wi-Fi (White) [Pick-up In-store Only] 
                             <span class="SKU">MD531X/A</span>
Apple iPad mini 32GB Wi-Fi (Black) [Pick-up In-store Only] 
                        <span class="SKU">MD529X/A</span>

ただし、次のように表示したいだけです:

JB Hi-Fi Australia

Apple iPad mini 16GB Wi-Fi (Black)

Apple iPad mini 16GB Wi-Fi (White)

以下は私のスクリプトです

url1="http://www.jbhifionline.com.au/support.aspx?post=1&results=10&q=ipad+mini&source=all&bnSearch.x=0&bnSearch.y=0"
page=urllib2.urlopen(url1)
soup = BeautifulSoup(page.read())


#website source site name : <title>Music Games DVDs at JB   Hi-FiAustralia</title>
sitename1=soup.html.head.title
print sitename1     ##issue here!!output shows <title>....</title>

#website source name:<td class="check_title">Apple iPad mini 16GB Wi-Fi (Black)   [Pick-up In-store Only]<span class="SKU$`
productname1=soup.findAll('td',{'class':'check_title'})
for eachproductname1 in productname1:

    print  eachproductname1.renderContents().replace("^<span>","")
4

4 に答える 4

0

これを試して :

replace("<.+?>|\[.+?\]", "")
于 2013-05-30T16:47:08.090 に答える
0

タイトルについては、 と タグを簡単に削除できるはずです。次に、タイトルから「Music Games DVDs at」を削除する必要があります...それは一定のテキストですか?これはあなたがスクレイピングしている固定の Web サイトに関するものなので、必要なタイトル情報を単にハードコーディングしてみませんか? JB Hi-Fi Australia ? これは、受け取った弦を切り詰めるよりもはるかに簡単に思えます。

特定の製品ラインについて、[ とその後のすべてを取り除こうとしていますか? それは正規表現で十分に簡単なはずです。一度に1行ずつ見ているので、

Apple iPad mini 16GB Wi-Fi (ブラック) [店頭受け取りのみ]Â

とは別です

             <span class="SKU">MD528X/A</span>

? まず、次のようなもの

eachproductname1.renderContents().replace("\[.*$","")

そして2番目(行全体を取り除く)の場合、次のようなものです

eachproductname1.renderContents().replace("^[ \t]*<.*$","")

Python とそのフレーバーの正規表現の経験がないため、そのままですぐに動作することを保証できません。そのコードを少しいじる必要があるかもしれません。前の回答で示唆されているように、2 つを 1 つの egrep 式に結合できる場合があります。

于 2013-05-30T16:55:49.703 に答える