Форум сайта python.su
Нужно вывести все ссылки сайта, но только те ссылки которые не имеют .jpg, #, и .img
как это фильтр организовать? я знаю что - то надо сделать с href, чтобы оно было только желаемые ссылки, но вот как не знаю, помогите пожалуйста
def get_links(base_url): links = [] source_cod = requests.get(base_url) text = source_cod.text soup = BeautifulSoup(text) for link in soup.findAll('a'): href = link.get('href') if href is not None: url = parse.urljoin(base_url, href) if url not in links: links.append(url) return links
Офлайн
MuradНе нужно делать всё сразу в одной функции. Сделай две функции: одна принимает адрес и выбирает оттуда все ссылки; другая принимает ссылки и отфильтровывает из них нужные. Третья функция управляет этими двумя функциями.
как это фильтр организовать?
>>> def get_filtered_links_from_url(url): ... links = get_links(url) ... out = filter_links(links) ... return out ... >>> def get_links(url): ... # достаю ссылки из url ... out = ['link1', 'link2'] ... return out ... >>> def filter_links(links_list): ... # фильтрую ссылки из links_list ... out = ['link1', 'link2'] ... return out ... >>> get_filtered_links_from_url('https://site.com') ['link1', 'link2'] >>>
Отредактировано py.user.next (Май 10, 2017 23:42:02)
Офлайн