2017-01-25 6 views
2

私は質問が基本的であるか、正しくポストしていない場合は、私に許してください。私はウェブサイトから名前を抽出する練習をして、リストに入れて.csvファイルに入れたいと思っています。私のコードはすべての名前を表示しますが、何か他のことをしようとすると姓だけしか見えません。私はあなたが助けることができることを願っています。BS4で壊れたデータを抽出するときに問題が発生する

import urllib 
import urllib.request 
import requests 
from bs4 import BeautifulSoup 
import civ 

theurl = "http://business.cardiff.ac.uk/research/accounting-and-finance/faculty" 

r = requests.get(theurl) 

soup = BeautifulSoup(r.text, "lxml") 

print(soup.title.text) 

for txt in soup.find_all("h1", {"class": "profile-title"}): 
    name = txt.text 
    print(name) 

この後、名前をリストに変換するさまざまな方法を試しましたが、姓だけが表示されます。

+0

ようこそStackOverflow!将来コードを投稿するときは、エディタの '{}'ボタンを使用して適切にフォーマットすることができます。また、サンプル出力を記述するのではなく、サンプル出力を使用して、得られたものとサンプル出力を正確に表示するのに役立ちます。 – JETM

答えて

0

あなたの問題は、nameオブジェクトを上書きし続けるforループにあると思います。これを試してみてください:

name = [] 

for txt in soup.find_all("h1",{"class":"profile-title"}): 
    name.append(txt.text) 

これは空のリストを作成し、その後、順次profile-title要素で見つかった名前のそれぞれを追加します。

+0

ありがとう、Nils。私はほとんどそこにいた! – Paulp1964

+0

心配する必要はありません。実際にこの問題を解決すれば、回答を受け入れて閉じることができれば良いでしょう。 –

関連する問題