Я пытаюсь извлечь данные со страницы, которую я соскоблил с Интернета, и мне кажется, что это довольно сложно. Я попробовал soup.get_Text()
, но это не хорошо, поскольку он просто возвращает одиночные символы в строке вместо целых строковых объектов.Извлечение данных из html-doc с помощью BeautifulSoup
Извлечь название легко, потому что вы можете получить к нему доступ с помощью 'b'-tag
, но, например, извлечение улицы («Am Vogelwäldchen 2») оказывается довольно сложным. Я мог бы попытаться собрать адрес из отдельных символов, но это кажется чрезмерно сложным, и я чувствую, что должен быть более простой способ сделать это. Может быть, у кого-то есть лучшая идея. О, и не против странной функции, я вернул суп, потому что я пробовал разные методы.
import urllib.request
import time
from bs4 import BeautifulSoup
#Performs a HTTP-'POST' request, passes it to BeautifulSoup and returns the result
def doRequest(request):
requestResult = urllib.request.urlopen(request)
soup = BeautifulSoup(requestResult)
return soup
def getContactInfoFromPage(page):
name = ''
straße = ''
plz = ''
stadt = ''
telefon = ''
mail = ''
url = ''
data = [
#'Name',
#'Straße',
#'PLZ',
#'Stadt',
#'Telefon',
#'E-Mail',
#'Homepage'
]
request = urllib.request.Request("http://www.altenheim-adressen.de/schnellsuche/" + page)
request.add_header("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
request.add_header("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0")
soup = doRequest(request)
#Save Name to data structure
findeName = soup.findAll('b')
name = findeName[2]
name = name.string.split('>')
data.append(name)
return soup
soup = getContactInfoFromPage("suche2.cfm?id=267a0749e983c7edfeef43ef8e1c7422")
print(soup.getText())
Спасибо, я попробую, что, когда я вернусь домой. –