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

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

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

Author24 — интернет-сервис помощи студентам
В общем по учебе надо пропарсить 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\parser.py", line 32, in <module>
print(get_content(html.text))
File "C:\Users\finli\PycharmProjects\Parser\parser.py", line 26, in get_content
'dep_time': item.find('a', class_='desktop__depTimeLink__1NA_N').get('href')
AttributeError: 'NoneType' object has no attribute 'get'

Если не пытаться гетнуть, то желаемый отрывок выводится без проблем:
C:\Users\finli\PycharmProjects\Parser\venv\Scripts\python.exe C:\Users\finli\PycharmProjects\Parser\parser.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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2021, 17:22
Ответы с готовыми решениями:

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

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

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

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

4
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 399
27.12.2021, 18:31 2
Ошибка при парсинге

Эти строчки Json, вытягиваешь их и вся инфа по электричкам у тебя в удобном виде.
1
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 39
27.12.2021, 18:43  [ТС] 3
Можешь пожалуйста подсказать как их вытянуть?
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 399
27.12.2021, 19:34 4
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  [ТС] 5
Спасибо, разобрался) Но к сожалению это не то, чем я интересовался, мне надо вытащить время отправлений, пункты отправления и назначения электричек из того блока, но я так не понял как
0
27.12.2021, 20:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2021, 20:12
Помогаю со студенческими работами здесь

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

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

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

Ошибка при парсинге валют
import requests from bs4 import BeautifulSoup from datetime import datetime url =...

Ошибка при парсинге таблицы с сайта
Здравствуйте! Пытаюсь парсить таблицу с сайта: https://coinmarketcap.com/ Для начала хотел...

Ошибка при парсинге (no attribute 'find_all')
Доброго дня. по примеру делаю парсинг табличных данных. ранее, в примере table был с id....

Ошибка 403 при парсинге сайта
Я новичок, пытаюсь разобраться с парсингом, заодно решил помочь жене, она попросила вытянуть...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru