Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11

Парсер по гайдам с ютуба

08.01.2023, 15:19. Показов 655. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все привет, я не так давно начал программировать на питон. Я написал парсер по гайдам с ютуба. Всё работает и даже выводит в таблицу Excel но есть одно но. Когда я пытаюсь вывести email адрес в эксель выдаёт ошибку изза квабратных скобочек возле адреса. Пример:[bogdankurbanov85@gmail.com]
Как мне избавиться от квадратных скобочек на выходе?
вот мой код:
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
33
34
35
36
37
38
39
import requests
from bs4 import BeautifulSoup
from time import sleep
from lxml import html
 
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
                         " AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"}
email_list = []
 
def get_url():
    for count in range(1):
 
        url = f"http://www.spisszkol.eu/typ/?wojewodztwo=malopolskie&powiat=****ow&start={count}"
 
        responce = requests.get(url, headers=headers)
        responce.encoding = "utf8"
        soup = BeautifulSoup(responce.text, "lxml")
        data = soup.find_all("div", class_="doc_entry")
 
 
        for i in data:
            card_url = i.find("a").get("href")
            yield card_url
 
def array():
    for list_card in get_url():
        responce = requests.get(list_card, headers=headers)
        responce.encoding = "utf8"
        sleep(3)
        soup = BeautifulSoup(responce.text, "lxml")
        parsed = html.fromstring(responce.text)
        emails = [e.attrib['title'] for e in parsed.xpath('//a[contains(@href, "email") and @title]')]
        s = ''.join(emails)
        data = soup.find("div", class_="page_body")
        name = data.find("p", class_="map_title red").text
        adres = data.find("p", itemprop="address").text
        telefon = data.find("span", itemprop="telephone").text
        # print(name, adres, telefon)
        print(emails)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2023, 15:19
Ответы с готовыми решениями:

Парсер видео с ютуба
Здравствуйте, подскажите пожалуйста, я в php дуб дубом, как сграбить видео с youtube? Т.е смотрите есть ссылка...

Видео с ютуба
Скажите есть ли в с++ компонент, который проигрывает видео с ютуба?

Видео с ютуба
Здравствуйте уважаемые форумчане! Есть видео с ютуба которое находиться в модальном окне. Подскажите, пожалуйста, как сделать что бы...

10
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
08.01.2023, 15:23
Цитата Сообщение от Bogdan_Kurbanov Посмотреть сообщение
по гайдам с ютуба
А где код записи в ексель?


Цитата Сообщение от Bogdan_Kurbanov Посмотреть сообщение
Пример:[bogdankurbanov85@gmail.com]
Как мне избавиться от квадратных скобочек на выходе?
доставать элемент из списка перед записью (это я навскидку, кода то нет)...ох рановато ты за парсинг взялся

Python
1
2
3
4
5
>>> email=['bogdankurbanov85@gmail.com']
>>> print(email)
['bogdankurbanov85@gmail.com']
>>> email[0]
'bogdankurbanov85@gmail.com'
0
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11
08.01.2023, 20:23  [ТС]
вот код ввывода в эксель
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
import xlsxwriter
from main import array
 
def writer(parametr):
    book = xlsxwriter.Workbook(r"C:\Users\bodga\OneDriveабочий стол\Parcer\data.xlsx")
    page = book.add_worksheet("товар")
 
    row = 0
    column = 0
 
    page.set_column("A:A", 20)
    page.set_column("B:B", 20)
    page.set_column("C:C", 50)
    page.set_column("D:D", 50)
 
    for item in parametr():
        page.write(row, column, item[0])
        page.write(row, column+1, item[1])
        page.write(row, column+2, item[2])
        row +=1
 
    book.close()
 
 
writer(array)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
08.01.2023, 20:26
Цитата Сообщение от Bogdan_Kurbanov Посмотреть сообщение
parametr()
это функция чтоли? первыми строками в функции напиши
print(parameter)
print(type(parameter))

и сюда результаты
0
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11
08.01.2023, 20:30  [ТС]
Да, у меня всё через функцию. Я создал второй файл чтобы выводить все в excel.
Оно выводит всё кроме email выскакиевает ошибка изза скобок

вот что выдало:<function array at 0x00000298F90EE340>
<class 'function'>
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
08.01.2023, 20:34
Bogdan_Kurbanov, так я должен догадаться что это за функция и что она возвращает? если посмотреть код в первом посте то функция аррей вообще ничего не возвращает (None)

внутри цикла на строке 17 напиши
print(item)
print(type(item))
0
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11
08.01.2023, 20:37  [ТС]
('Centrum Edukacji Creative', 'Długa 46/3, 31-146\xa0****ów', '508306502')
<class 'tuple'>

Добавлено через 1 минуту
Как говорил автор видео которое я смотрел. Функция array нужна чтобы сделать массив данных которые нужно вывести в таблицу и во втором документе к нему обращаться.

Там в низу заместо принт в основном коде yield name, adres, telefon
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
08.01.2023, 20:39
Bogdan_Kurbanov, нц и где тут емейлы?) а главное как ты мог такой результат получить, твой код в 1 посте ничего не возвращает в функции аррей? Не говори что код давно изменился, но ты не сообщил об этом.

Добавлено через 1 минуту
Цитата Сообщение от Bogdan_Kurbanov Посмотреть сообщение
sleep(3)
это кстати твоя идея или в видео сказали?
0
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11
08.01.2023, 20:40  [ТС]
Вот в функцию аррей я добавляю значение emails.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def array():
    for list_card in get_url():
        responce = requests.get(list_card, headers=headers)
        responce.encoding = "utf8"
        sleep(3)
        soup = BeautifulSoup(responce.text, "lxml")
        parsed = html.fromstring(responce.text)
        emails = [e.attrib['title'] for e in parsed.xpath('//a[contains(@href, "email") and @title]')]
        s = ''.join(emails)
        data = soup.find("div", class_="page_body")
        name = data.find("p", class_="map_title red").text
        adres = data.find("p", itemprop="address").text
        telefon = data.find("span", itemprop="telephone").text
        yield name, adres, telefon,emails
Добавлено через 41 секунду
На видео, просто иначе сайт может заблокировать за быстрые запросы


Вот ошибки появляються когда я к выводимым данным добавляю переменную с адресами:

Traceback (most recent call last):
File "C:\Users\bodga\AppData\Local\Programs\P ython\Python311\Lib\site-packages\xlsxwriter\worksheet.py", line 522, in _write
f = float(token)
^^^^^^^^^^^^
TypeError: float() argument must be a string or a real number, not 'list'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\bodga\OneDrive\Рабочий стол\Parcer\asydsad.py", line 26, in <module>
writer(array)
File "C:\Users\bodga\OneDrive\Рабочий стол\Parcer\asydsad.py", line 20, in writer
page.write(row, column+3, item[3])
File "C:\Users\bodga\AppData\Local\Programs\P ython\Python311\Lib\site-packages\xlsxwriter\worksheet.py", line 90, in cell_wrapper
return method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bodga\AppData\Local\Programs\P ython\Python311\Lib\site-packages\xlsxwriter\worksheet.py", line 455, in write
return self._write(row, col, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bodga\AppData\Local\Programs\P ython\Python311\Lib\site-packages\xlsxwriter\worksheet.py", line 527, in _write
raise TypeError("Unsupported type %s in write()" % type(token))
TypeError: Unsupported type <class 'list'> in write()
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
08.01.2023, 20:42
Лучший ответ Сообщение было отмечено Bogdan_Kurbanov как решение

Решение

Bogdan_Kurbanov, ну вот видишь функция уже другая, как тебе помогать если ты не сообщаешь о том что код поменял?

короче, просто в цикле для каждой итем (строки 17-19) делай replace('[', '').replace(']', '')
1
0 / 0 / 0
Регистрация: 07.01.2023
Сообщений: 11
08.01.2023, 22:02  [ТС]
Я немного не могу понять куда replace подставить. Когда подставляю вперёд вот так: page.write(row, column+3, item[3]).replace('[', '').replace(']', '') выдаёт ошибки терминал
а когда сзади воопще не запускаеться

Добавлено через 7 минут
Вот такая ошибка когда пытаюсь встроить в скобки
AttributeError: 'list' object has no attribute 'replace'


Python
1
2
3
4
page.write(row, column, item[0].replace('[', '').replace(']', ''))
        page.write(row, column+1, item[1].replace('[', '').replace(']', ''))
        page.write(row, column+2, item[2].replace('[', '').replace(']', ''))
        page.write(row, column+3, item[3].replace('[', '').replace(']', ''))
Добавлено через 1 час 6 минут
Хоть у меня не получилось использовать replace я погуглил и изучил информацию использовал функцию open() Всё работает.
Наверное я слишком ленивый и сразу лезу на форум)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2023, 22:02
Помогаю со студенческими работами здесь

Вывод видео из ютуба
Как сделать вывод видео с ютуба в приложение (приложение имеется) Посоветуйте полезные сылочки :)

Не вставляется видео с ютуба
Здравствуйте,сайт на php,фреймоворк codeigniter Пытась вставить видео с ютуба 1)залил ролик 2)нажимаю поделиться,получаю код для...

Парсинг ютуба с selenium
Доброго времени суток.Написал парсер ютуба.Принцип работы таков selenium открывает страничку прокручивает ее вниз с кликами чтобы...

Создание аналога ютуба
Здравствуйте форумчане! Заранее прошу прощения за то, что категорию форума выбрал неподходящую, не знал куда её определить... Хотелось бы...

Авторегер для ютуба
Всем привет, собираюсь реализовать Авторегер для ютуба Сложность в том, что ютуб запрашивает номер телефона, но не всегда. Например,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru