2017-02-12 18 views
0
table = soup.findAll('div', attrs={"class":"five columns"}) 
for data in table: 
    para = data.findAll('p') 
    print para 

これは私がまだ残しているものです。スパン内のテキストを含むすべてのpタグ内のすべてのテキストをスクラップする方法は?

<p><span class="four">Location: </span> <span id="wt-loc" title="New Delhi/Safdarjung">New Delhi/Safdarjung</span></p>, <p><span class="four">Current Time: </span> <span id="wtct">Feb 12, 2017 at 10:29:52 am</span></p>, <p><span class="four">Latest Report: </span> Feb 12, 2017 at 8:30 am</p>, <p><span class="four">Visibility: </span> 1 km</p>, <p><span class="four">Pressure: </span> 102.12 kPa</p>, <p><span class="four">Humidity: </span> 95%</p>, <p><span class="four">Dew Point: </span> 10 °C</p> 

答えて

0

あなたはBeautifulSoupオブジェクトpara.text.text属性で試すことができます。私はあなたが分割したくない場合は、さらに、re.split()機能で鍵ペアの値を分割さそしてちょうどpara.text

from bs4 import BeautifulSoup 
import re 

a = """<p><span class="four">Location: </span> <span id="wt-loc" title="New Delhi/Safdarjung">New Delhi/Safdarjung</span></p>, <p><span class="four">Current Time: </span> <span id="wtct">Feb 12, 2017 at 10:29:52 am</span></p>, <p><span class="four">Latest Report: </span> Feb 12, 2017 at 8:30 am</p>, <p><span class="four">Visibility: </span> 1 km</p>, <p><span class="four">Pressure: </span> 102.12 kPa</p>, <p><span class="four">Humidity: </span> 95%</p>, <p><span class="four">Dew Point: </span> 10 °C</p>""" 

soup = BeautifulSoup(a, 'html.parser') 
re.split(r', (?=\s*[A-Z])', soup.text) 

出力の操作を行います。pタグの下にあるすべてのテキストを取得する

[u'Location: New Delhi/Safdarjung', 
u'Current Time: Feb 12, 2017 at 10:29:52 am', 
u'Latest Report: Feb 12, 2017 at 8:30 am', 
u'Visibility: 1 km', 
u'Pressure: 102.12 kPa', 
u'Humidity: 95%', 
u'Dew Point: 10 \uc9f8C'] 
0

使用.textを、

0:何をする必要が出て findAll(p)

from bs4 import BeautifulSoup 
html = '''<p><span class="four">Location: </span> <span id="wt-loc" title="New Delhi/Safdarjung">New Delhi/Safdarjung</span></p>, <p><span class="four">Current Time: </span> <span id="wtct">Feb 12, 2017 at 10:29:52 am</span></p>, <p><span class="four">Latest Report: </span> Feb 12, 2017 at 8:30 am</p>, <p><span class="four">Visibility: </span> 1 km</p>, <p><span class="four">Pressure: </span> 102.12 kPa</p>, <p><span class="four">Humidity: </span> 95%</p>, <p><span class="four">Dew Point: </span> 10 °C</p>''' 

soup = BeautifulSoup(html, 'lxml') 

for p in soup.find_all('p'): 
    print(p.text) 

を反復されます

Location: New Delhi/Safdarjung 
Current Time: Feb 12, 2017 at 10:29:52 am 
Latest Report: Feb 12, 2017 at 8:30 am 
Visibility: 1 km 
Pressure: 102.12 kPa 
Humidity: 95% 
Dew Point: 10 °C 
0

美しいスープにはget_text()という機能があり、タグ内のすべてのテキストを他のタグを無視して取得できます。 p.get_text()に電話するだけです。空白の電話番号p.get_text(strip=True)も削除したい場合は、

関連する問題