Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 39

Ошибка при парсинге

27.12.2021, 17:22. Показов 1255. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем по учебе надо пропарсить tutu.ru чтобы подобрать ближайшую электричку. При парсинге столкнулся с дилеммой, из-за которой горит не елочка, а моя ass. Суть проблемы заключается в том, что я не могу вытащить время отправления, прибытия. Потом до меня дошло что я в принципе не могу ничего вытащить по причине того что код страницы какой-то уникальный что ли, не как в многочисленных гайдах, да и к тому же я новичек в этом всём.

Что мне надо вытащить? - скрин приложен.

Мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import requests
from bs4 import BeautifulSoup
import csv
 
HOST = 'https://www.tutu.ru/'
URL = 'https://www.tutu.ru/spb/rasp.php?st1=13302&st2=14902'
HEADERS = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
 
 
def get_html(url, params=''):
    r = requests.get(url, headers=HEADERS, params=params)
    return r
 
 
def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('tr', class_='desktop__card__yoy03')
    trains = []
 
    for item in items:
        trains.append(
            {
                 'dep_time': item.find('a', class_='desktop__arrTimeLink__2TJxM')
            }
        )
    return trains
 
html = get_html(URL)
print(get_content(html.text))
Трэйсбэк:
Traceback (most recent call last):
File "C:\Users\finli\PycharmProjects\Parser\p arser.py", line 32, in <module>
print(get_content(html.text))
File "C:\Users\finli\PycharmProjects\Parser\p arser.py", line 26, in get_content
'dep_time': item.find('a', class_='desktop__depTimeLink__1NA_N').ge t('href')
AttributeError: 'NoneType' object has no attribute 'get'

Если не пытаться гетнуть, то желаемый отрывок выводится без проблем:
C:\Users\finli\PycharmProjects\Parser\ve nv\Scripts\python.exe C:\Users\finli\PycharmProjects\Parser\pa rser.py
[{'dep_time': None}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=35bdbe3c95">06:39</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=162bbb818b">07:39</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=a9f9f38c7f">08:06</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=199d295820">08:40</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=5a229cdb3a">09:20</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=e2b6f0cf93">10:00</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=f9fe412cd8">11:00</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=0f4eacdefd">13:39</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=139c278f52">13:51</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=41691a1676">15:15</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=f10cea313e">15:36</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=ce6f5f6600">16:08</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=4b30e51dc1">17:19</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=8c63acd52b">18:19</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=1a618045fc">18:34</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=e3f980b921">19:24</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=e23c212435">19:42</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=74d6487e34">20:16</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=0201dcb3e5">20:46</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=8fad39f1ad">21:21</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=9cdbc1a569">21:57</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=1631930593">22:57</a>}, {'dep_time': <a class="g-link desktop__arrTimeLink__2TJxM" href="/spb/view.php?np=2d6cd6a266">00:14</a>}, {'dep_time': None}]

Подскажите пожалуйста как вытащить отсюда именно время
Миниатюры
Ошибка при парсинге  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2021, 17:22
Ответы с готовыми решениями:

Ошибка при парсинге Json
Ошибка возникаєт в парсенге, понять что он от меня хочет не могу. Сначала я делал всё как впримере где била другая сылка. Пример: ...

Ссылки при парсинге
Всем привет, при парсинге ссылок если в ссылке присутствуют не латинские символы то ссылка выводится в виде ссылки только до того места с...

При парсинге не находится тэг
Всем привет. Изучаю парсинг с помощью BeautifulSoup. Написал такой код: import requests from bs4 import BeautifulSoup ...

4
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
27.12.2021, 18:31

Эти строчки Json, вытягиваешь их и вся инфа по электричкам у тебя в удобном виде.
1
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 39
27.12.2021, 18:43  [ТС]
Можешь пожалуйста подсказать как их вытянуть?
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
27.12.2021, 19:34
Python
1
2
3
4
5
6
def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    scripts = soup.find_all('script')
    for script in scripts:
        if 'window.modelParams ' in script.text:
            print(script)
0
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 39
27.12.2021, 20:12  [ТС]
Спасибо, разобрался) Но к сожалению это не то, чем я интересовался, мне надо вытащить время отправлений, пункты отправления и назначения электричек из того блока, но я так не понял как
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2021, 20:12
Помогаю со студенческими работами здесь

Проблема с кодировкой при парсинге
Уважаемые программисты. Изучаю python. Есть Html: &lt;!DOCTYPE html&gt; &lt;head&gt;&lt;title&gt;Заголовок веб-сайта&lt;/title&gt;&lt;/head&gt; ...

Ошибка при парсинге
Здравствуйте. Пытаюсь написать простой парсер, но возникла непонятная ошибка Например, страница...

Странная ошибка при парсинге
Вчера этот же код работал, а сегодня уже выдает ошибку. Проверил еще на одном сайте, работает. import requests from bs4 import...

Ошибка при парсинге на bs4 =(
Не пойму почему при парсинге гугла он не чего не находит в перемменую desc Ниже код import requests from bs4 import BeautifulSoup...

Ошибка при парсинге валют
import requests from bs4 import BeautifulSoup from datetime import datetime url = &quot;http://www.cbr.ru/scripts/XML_daily.asp?&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru