Найти - Пользователи
Полная версия: парсинг сайта
Начало » Web » парсинг сайта
1
Murad
Нужно вывести все ссылки сайта, но только те ссылки которые не имеют .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
py.user.next
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']
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB