Форум сайта python.su
0
Здравствуйте уважаемые форумчане.
Необходимо спарсить данные с ссылкок агенств: адрес, телефон, сайт, facebook, linkedin. Но есть ссылки на агенства на которых отсутствуют некоторые данные как: facebook, linkedin. Решил пойти путем проверки какие данные присутствуют:
def get_agency_data(url): html = get_html(url) soup = bs(html, 'lxml') name = soup.find('div', class_ = 'homeSearch-title').text.strip() # agent profile details apd = soup.find('div', class_ = 'container agentProfile-details').find('div', class_ = 'col-xs-12 col-md-8 col-sm-8').find_all('div', class_ = 'row vert-rhythm-lg') for div in apd: try: param_name = div.find('div', class_ = 'col-xs-4 col-md-2 col-sm-3').text print(param_name) address = '' phone = '' website = '' fb = '' linkedin = '' except: pass else: if param_name == 'Address': address = div.find('div', class_ = 'col-xs-8 col-md-10 col-sm-9').next.strip() elif param_name == 'Phone': phone = div.find('div', class_ = 'col-xs-8 col-md-10 col-sm-9').find('a').get('data-telephone-number').replace(' ', '') elif param_name == 'Website': website = div.find('div', class_ = 'col-xs-8 col-md-10 col-sm-9').find('a').get('href') elif param_name == 'Facebook': fb = div.find('div', class_ = 'col-xs-8 col-md-10 col-sm-9').find('a').get('href') elif param_name == 'LinkedIn': linkedin = div.find('div', class_ = 'col-xs-8 col-md-10 col-sm-9').find('a').get('href') print('{}\n{}\n{}\n{}\n{}'.format(address, phone, website, fb, linkedin))
Address Phone Website Facebook LinkedIn [Finished in 5.5s]
Address: 4/355 Stirling Highway, Claremont WA 6010 Phone: 9385 5559 Website: www.capornyoung.com.au Facebook: https://www.facebook.com/CapornYoung/ LinkedIn: https://www.linkedin.com/in/caporn-young-estate-agents-256418bb/
Address: 1/355 Stirling Highway, Claremont WA 6010 Phone: 9273 4400 Website: www.airey.com.au
Офлайн
0
Разобрался:
param_name = div.find('div', class_ = 'col-xs-4 col-md-2 col-sm-3').find('strong').text
Офлайн