Привет Я пытаюсь получить имя, адрес и номер телефона каждого из бухгалтерских фирм на этой странице:Webscraping грязный веб-страницу с питоном и красивый суп
http://accountantlist.com.au/x123-Accountants-in-Sydney.aspx?Page=0
У меня возникли проблемы навигации по дереву, где находится информация.
Используя «красивый суп» и «запросы» в Python это, как я пытаюсь получить название компании:
import bs4
import requests
page = request.get('http://accountantlist.com.au/x123-Accountants-in-Sydney.aspx?Page=0')
soup = bs4.BeautifulSoup(page.text)
name = soup.select('......')
Поэтому в основном я просто спускаясь по дереву, следуя селекторов, которые я нашел с помощью инструменты разработчика Chrome:
#ctl00_ContentPlaceHolder1_dgLawyers > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(1) > td:nth-child(1) > a
Красивый суп не будет принимать этот путь, однако. Я попробовал это без символов «>».
Второй метод, который я попытался было просто посмотреть на дерево и типа в CSS селекторов от тела вниз, где я хотел, как это:
soup.select('body table tbody tr ... etc')
Но это не работает.
Я думаю, в конце концов этот вопрос сводится к тому, как я могу написать путь, который примет прекрасный суп. Может ли кто-нибудь пролить свет на то, как я могу решить эту проблему?
Спасибо какой-либо помощи, оцененной.
Вау, спасибо. На вашем пути, как вы можете пропустить тег «tbody», который находится под «table # ct100 ...»? – Kane
@ Kane yeah, я пропускаю 'tbody' - нет необходимости всегда использовать'> 'и следовать прямым отношениям parent-child. – alecxe
@Kane: 'table # ct100 ... tr' Обратите внимание на использование пробела вместо>. Это предполагает, что у вас есть только один уровень вложенности таблицы. – BoltClock