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

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

08.01.2023, 15:19. Показов 629. Ответов 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru