2016-10-05 9 views
1

新聞のモジュールが動作することがありますので、bs4を使用して記事の公開日を抽出したいのですが、それ以外の場合はありません。bs4は予想されるテキスト文字列を選択できませんか?

たとえば、URLはhttp://www.popsci.com/ups-tests-drone-deliveries-to-islandです。

from bs4 import BeautifulSoup 
import urllib.request 

page = urllib.request.urlopen(url) 
soup = BeautifulSoup(page, 'lxml') 

#print (soup.prettify()) 
date = soup.find('span', {'class':"date"}) 
print (date) 

以下の情報が表示されます。

<span class="date" data-timestamp="1474907692"><span class="label">posted</span> Sep 26th, 2016 at 12:34pm</span>

私はちょうど12時34分午後部に9月26日、2016年を必要としています。

だから、私はしかし、これは単なるなしを返していない、

date = soup.find('span',{'class':"date"}, text=(re.compile("Sep"))) 

を試してみました。

私はここで何かが間違っていると信じていますが、何が間違っているかはわかりません。 誰かが私が何を修正すべきかを案内する手助けをすることができますか?

+0

"label"という名前のクラスのテキストはありませんか? – wrkyle

答えて

0

何について:

date = soup.find('span', {'class':"date"}).text.replace("posted ", "") 
# 'Sep 26th, 2016 at 12:34pm' 

あなたはそれをより安全にするために、いくつかのtry/catchブロックにそれをラップすることがあります。

+0

ありがとうございます。できます。もう一歩進んでみたい。この日付抽出文を可能な限り一般的なものにして、他のページスクレイピングに再利用できるようにしたいと思います。だから、私は試しました 日付= soup.find( 'スパン'、テキスト= re.compile(r "^ 9月$ |^9月|^SEP $")) しかし、これは動作しません..ちょうど戻ってくる**もう一度** **。 ここで最善のアプローチは何ですか? –

関連する問題