Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2022, 23:11   #11
OlegShtompel
Пользователь
 
Регистрация: 26.07.2022
Сообщений: 14
По умолчанию

Огромное спасибо ! У меня ещё 1-2 сайта, попробую применить ваши сверх полезные советы
OlegShtompel вне форума Ответить с цитированием
Старый 31.07.2022, 14:46   #12
OlegShtompel
Пользователь
 
Регистрация: 26.07.2022
Сообщений: 14
По умолчанию

Нужна ваша помощь последний сайт https://www.feedinco.com/tips
Код:
def feedinco():
    global predicts
    # https://www.feedinco.com/tips

    predicts['feedinco'] = []

    url = "https://www.feedinco.com/tips"
    page = requests.get(url, headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"})

    soup = BeautifulSoup(page.content, "html.parser")
    games = soup.find_all("div", class_='row')


    for game in games:
        home = game.find("div", id="Name_-Namehome").text
        away = game.find("div", id="Name_-Nameaway").text
        if home == '' or away == '':
            continue

        game_class = Game()
        game_class.name = home + " vs " + away
        game_class.predict = game.find("div", id="Name_-Name_ft_tip").text

        predicts['feedinco'].append({'game': game_class.name, 'predict': game_class.predict})
или
Код:
def feedinco():
    global predicts
    predicts['feedinco'] = []
    resp = requests.get(r'https://www.feedinco.com/tips')
    soup = BeautifulSoup(resp.content, 'html.parser')
    games = soup.find_all("div", class_ = "row")
    for game in games:
        names = game.find_all("div", class_ = "col")
        predict = game.find("div", class_ = "col")
        predicts['feedinco'].append({'game': f'{names[0].text} vs {names[1].text}', 'predict': predict.text})
OlegShtompel вне форума Ответить с цитированием
Старый 31.07.2022, 22:43   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
def feedinco():
    global predicts
    predicts['feedinco'] = []
    resp = requests.get(r'https://www.feedinco.com/tips')
    soup = BeautifulSoup(resp.content, 'html.parser')
    games = soup.find_all(class_ = "bg-danger1")
    for game in games:
        home = game.find(itemprop = "homeTeam").text.strip()
        away = game.find(itemprop = "awayTeam").text.strip()
        predict = game.find_all("div", id = lambda x: x and x.endswith("_ft_tip"))[0].text
        predicts['feedinco'].append({'game': f'{home} vs {away}', 'predict': predict})
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.08.2022, 13:12   #14
OlegShtompel
Пользователь
 
Регистрация: 26.07.2022
Сообщений: 14
По умолчанию

Спасибо Вам Огромное !!!
Помогите напоследок, закрепить материал.
Код:
for game in games:
        home = game.find(itemprop = "homeTeam").text.strip()
        away = game.find(itemprop = "awayTeam").text.strip()
на примере скрина №2, мне интересно почему не пишеться текст строки полностью ?

Код:
predict = game.find_all("div", id = lambda x: x and x.endswith("_ft_tip"))[0].text
на примере скрина №3 почему пишется это код
Код:
id = lambda x: x and x.endswith("_ft_tip"))[0].text
Код:
predicts['feedinco'].append({'game': f'{home} vs {away}', 'predict': predict})
и куда смотреть что бы увидеть эти данные Заранее благодарен за ответ
Изображения
Тип файла: jpg 1.jpg (68.4 Кб, 0 просмотров)
Тип файла: jpg 2.jpg (70.3 Кб, 0 просмотров)
Тип файла: jpg 3.jpg (68.3 Кб, 0 просмотров)
OlegShtompel вне форума Ответить с цитированием
Старый 01.08.2022, 15:26   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от OlegShtompel Посмотреть сообщение
на примере скрина №2, мне интересно почему не пишеться текст строки полностью ?
Потому что осуществляется не просто поиск подстроки 'itemprop="homeTeam"', а поиск дочернего элемента, у которого атрибут itemprop имеет значение "homeTeam". Вообще говоря, легче искать элемент по id, т.к. id должен быть уникальным, но тут id содержат названия команд, которые как раз и требуется получить, поэтому нужный элемент ищется по-другому. Для лучшего понимания посмотрите примеры в справке https://www.crummy.com/software/BeautifulSoup/bs4/doc/.
Цитата:
Сообщение от OlegShtompel Посмотреть сообщение
на примере скрина №3 почему пишется это код
Во-первых, чуть упростим, заменив find_all на find (чтобы не брать потом нулевой элемент списка-результата):
Код:
predict = game.find("div", id = lambda x: x and x.endswith("_ft_tip")).text
Можно было бы брать нужный div по порядковому номеру, но если искать по каким-либо признакам, то единственное, к чему можно было привязаться, что id заканчивается текстом "_ft_tip". В BeautifulSoup какого-то специального и простого способа это проверять нет, но можно воспользоваться регулярными выражениями или лямбда функциями (см. https://stackoverflow.com/questions/...-beautifulsoup). Такая конструкция позволяет найти div, чей id заканчивается на "_ft_tip".
Цитата:
Сообщение от OlegShtompel Посмотреть сообщение
и куда смотреть что бы увидеть эти данные
Этот вопрос не понял. По каким признакам искать данные, определяется рассматриванием исходного кода html-страницы. Чтобы данные feedinco загружались в самом скрипте, нужно вписать функцию feedinco в список functions в функции main. А чтобы данные выгружались в эксель, нужно добавить строку в pd.DataFrame по аналогии с другими.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.08.2022, 18:15   #16
OlegShtompel
Пользователь
 
Регистрация: 26.07.2022
Сообщений: 14
По умолчанию

Спасибо !!!
OlegShtompel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер новостей с новостных сайтов разумеется =) maxvel0007 Фриланс 6 17.10.2017 22:59
Парсер поиска любых контактов и определения категорий сайтов Dumas Софт 0 12.06.2015 14:40
Php парсер части сайтов) Fahman PHP 6 15.12.2013 17:14
Требуется написать парсер-граббер сайтов bashkov Фриланс 4 28.07.2009 01:12