2017-01-25 4 views
2

Im довольно новый для кодирования, так что простите меня, если мой вопрос кажется основным или если я не опубликую его правильно. Im практикует извлечение имен с веб-сайта, и я хочу поместить их в список, а затем в 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

Спасибо, что так много Нильса. Я был почти там! – Paulp1964

+0

Не беспокойтесь - если бы это действительно решило вопрос, было бы хорошо, если бы вы могли принять ответ, чтобы закрыть его. –

Смежные вопросы