Задать вопрос
@Yevgeni

Почему BeautifulSoup возвращает мне пустой список?

Когда я проделывал подобные манипуляции вне класса(процедурно) проблем с извлечением ссылок небыло.
Стоило мне создать класс и все перестало работать.
После исполнения find_all я получаю пустой список.

До этого парсил 200 страниц без всяких проблем а тут тебе на! На ровном месте ыплысь :(

P.S: soup.prettify выдает html код страницы. то есть проблема именно в методе find_all
import requests
from bs4 import BeautifulSoup
import json
from datetime import datetime, timedelta
from textwrap import shorten


class SSLV:
    def __init__(self):
        self.root_url = r'https://ss.lv'
        self.vacancies_url = r'https://www.ss.com/ru/work/are-required/filter/page1.html'

    def make_request(self, url):
        r = requests.get(url)
        html = r.content
        return html

    def make_soup(self, html_code):
        soup = BeautifulSoup(html_code, 'html.parser')
        return soup

    def calculate_pagination(self, url):
        pass

    def find_links(self):
        # total_pages = self.calculate_pagination(self.vacancies_url)
        # for p in range(total_pages):
        #     pass
        html = self.make_request(self.vacancies_url)
        soup = self.make_soup(html)
        # print(soup.prettify())
        links = soup.find_all('a', class_='am')
        print(links)


ss = SSLV()
ss.find_links()
  • Вопрос задан
  • 1555 просмотров
Подписаться 2 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
de-iure
@de-iure
just a crazy lawyer
метода find_all() нет... он где?
или тут должен быть findall()?

вот так вроде работает:

import re
links = re.findall(r'<a.*>.*</a>', str(soup))
print(links)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы