2017-01-25 65 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

我認爲你的問題是在for循環中,在那裏你一直覆蓋name對象。試試這個:

name = [] 

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

創建一個空的列表,然後依次追加每個在profile-title元素中找到的名字。

+0

非常感謝Nils。我幾乎在那裏! – Paulp1964

+0

不用擔心 - 如果這真的解決了這個問題,如果你能接受答案來關閉它,那將是一件好事。 –