2

私はbeautifulSoup4でWebページスクレーパーに取り組んでいます。記事のテキストと画像を取得したいのですが、問題があります。html コードは次のようになります。

<div>
 some texts1
 <br />
 <img src="imgpic.jpg" />
 <br />
 some texts2
</div>

私はこれでテキスト全体を取得します:

post_soup.get_text()

そしていつものようにすべての画像divurllib2保存して最後にhtmlページに保存し、すべてのテキストを一番上に置き、最後に画像を配置しますが、スクレイピングしたページと同じように新しいhtmlページに保存したいsome texts1ですimagesome texts2

何か提案はありますか?

4

2 に答える 2

0

を使用する代わりに、必要なセクション全体を文字列として返すためにget_text()使用します。このようにして、常に上部と下部に正しいテキストが表示されることが保証されます。そこから、文字列の一部を取り除いて、必要なものを取得できます。prettify()<div>

# post_soup is the <div> element you posted
s = post_soup.prettify()
split_s = s.split('<br/>')
top = split_s[0].strip('<div>')
bottom = split_s[-1].strip('</div>')

出力:

>>> top
u'\n some texts1\n '
>>> bottom
u'\n some texts2\n'
于 2013-08-26T20:24:49.757 に答える