Цитаты Мессинг до Python Scraper
Я пытаюсь очистить все данные внутри div следующим образом. Однако цитаты сбивают меня с толку.
<div id="address">
<div class="info">14955 Shady Grove Rd.</div>
<div class="info">Rockville, MD 20850</div>
<div class="info">Suite: 300</div>
</div>
Я пытаюсь начать это с чего-то вроде
addressStart = page.find("<div id="address">")
но цитаты внутри div меня запутывают. Кто-нибудь знает, как я могу это исправить?
1 ответ
Решение
Чтобы ответить на конкретный вопрос, вам нужно экранировать кавычки или использовать другой тип цитаты в самой строке:
addressStart = page.find("<div id=\"address\">")
# or
addressStart = page.find('<div id="address">')
Но не делай этого. Если вы пытаетесь "разобрать" HTML, пусть сторонняя библиотека сделает это. Попробуйте красивый суп. Вы получаете хороший объект, который вы можете использовать для поиска или поиска. Вы можете получить атрибуты, значения и т. Д., Не беспокоясь о сложностях парсинга HTML или XML:
from bs4 import BeautifulSoup
soup = BeautifulSoup(page)
for address in soup.find_all('div',id='address'): # returns a list, use find if you just want the first
for info in address.find_all('div',class_='info'): # for attribute class, use class_ instead since class is a reserved word
print info.string