Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 7, 2022 16:26:27

roobee147
Зарегистрирован: 2022-09-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

парсинг авито

Привет, вот сам код:

 from bs4 import BeautifulSoup
import requests
product = input()
url = "https://www.avito.ru/rossiya?q=" + product
request = requests.get(url)
bs = BeautifulSoup(request.text, "html.parser")
all_links = bs.find_all('a', class_='link-link-MbQDP')
for link in all_links:
    print('https://www.avito.ru' + link['href'])

Запускаю его, ввожу что хочу найти и все, ничего не происходит
 PS C:\Users\79817\Desktop\PY\Пробники>  & 'C:\Users\79817\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '62903' '--' 'c:\Users\79817\Desktop\PY\робники\parcer.py'
Traceback (most recent call last):
  File "C:\Users\79817\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\79817\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy\__main__.py", line 39, in <module>
    cli.main()
  File "c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 430, in main
    run()
  File "c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 284, in run_file
    runpy.run_path(target, run_name="__main__")
  File "c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
  File "c:\Users\79817\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 289, in _get_code_from_file
    with io_open_code(decoded_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\79817\\Desktop\\PY\\робники\\parcer.py'

Отредактировано roobee147 (Сен. 7, 2022 16:52:54)

Офлайн

#2 Сен. 8, 2022 01:17:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

парсинг авито

Установи питон новее, чем Python 3.2.
Используй питон без Visual Studio и Visual Studio Code.
Для редактирования кода поставь Sublime Text и Notepad++.
Используй для запуска cmd.exe.
Все пути к файлам сделай на английском языке без пробелов (вместо пробелов подчёркивания).

Здесь писал, как запускать скрипты.
Здесь писал, как сделать ярлык для запуска.



Отредактировано py.user.next (Сен. 8, 2022 01:22:29)

Офлайн

#3 Сен. 8, 2022 09:10:00

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

парсинг авито

py.user.next
Для редактирования кода поставь Sublime Text и Notepad++.
Не нужно такое советовать
VS Code прекрасно работает - для удобства поставить плагин
https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

для остального
https://code.visualstudio.com/docs/languages/python

если влом с редактором разбираться до Pycharm Community прекрасный выбор



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#4 Сен. 8, 2022 11:38:48

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1337
Репутация: +  116  -
Профиль   Отправить e-mail  

парсинг авито

ZerG
Pycharm Community прекрасный выбор
это правда, очень удобный редактор
roobee147
Привет, вот сам код:
ваш код с ошибкой, когда разберетесь как запустить, увидите
вот доработанный если что
  
from bs4 import BeautifulSoup
import requests
product = input()
url = "https://www.avito.ru/rossiya?q=" + product
request = requests.get(url)
bs = BeautifulSoup(request.text, "html.parser")
all_links = bs.find_all('div', class_='iva-item-titleStep-pdebR')
for link in all_links:
    if a := link.find('a', href=True):
        print('https://www.avito.ru' + a['href'])

Офлайн

#5 Сен. 8, 2022 11:42:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

парсинг авито

ZerG
VS Code прекрасно работает
В Windows 7 его поставишь? Ещё он телеметрию передаёт в Microsoft. Ну и много ещё чего другого там, что в духе Microsoft.
https://code.visualstudio.com/docs/supporting/faq
Вот там надо ходить отключать телеметрию, потом отключать эксперименты.
What online services does VS Code use?
Beyond crash reporting and telemetry, VS Code uses online services for various other purposes such as downloading product updates, finding, installing, and updating extensions, or providing Natural Language Search within the Settings editor.
А в Sublime Text всех этих проблем нет. Это просто редактор, который просто редактор. Notepad++ - просто бесплатный инструмент на каждый день, который подменяет собой блокнот.

ZerG
Не нужно такое советовать
Если бы он сделал изначально так, как я написал, то он бы этот топик даже не создал, потому что этой проблемы у него бы не возникло. Он бы сидел и занимался парсингом Авито, а не вот этими вот установками-доустановками.



Отредактировано py.user.next (Сен. 8, 2022 11:46:49)

Офлайн

#6 Сен. 8, 2022 12:28:59

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

парсинг авито

py.user.next
В Windows 7 его поставишь?
На 98 тоже не поставишь
И питон последний на семерку тоже не станет
Python 3.10.7 - Sept. 6, 2022
Note that Python 3.10.7 cannot be used on Windows 7 or earlier.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Сен. 8, 2022 19:42:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

парсинг авито

ZerG
На 98 тоже не поставишь
И питон последний на семерку тоже не станет
А ты думаешь, я себе винду стал ставить резко новую, когда он там вышла? Многие и на XP ещё сидят, потому что им и семёрка нафиг не нужна. Банкомат какой-нибудь открываешь, там XP стоит. Вот у меня стоит семёрка, вот я играю в ней в SWAT4, в S.T.A.L.K.E.R. сетевой и так далее, что под линем не поставишь. И питон в ней есть, потому что у питона никаких проблем нет, чтобы там поставиться и работать.

А вот почему я ему советую убрать то, поставить то, - потому что завтра он придёт с новыми вопросами и все эти вопросы я вижу уже сейчас. Таким образом он будет не питоном заниматься и не вопросами разработки под какой-то там сайт, а виндовыми вопросами, которые здесь нафиг не сдались, а задать их ему больше некуда.

roobee147
  
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\79817\\Desktop\\PY\\робники\\parcer.py'
На вон, проведи анализ, куда там буква п делась из пробников.



Отредактировано py.user.next (Сен. 8, 2022 19:43:48)

Офлайн

#8 Сен. 9, 2022 02:14:14

roobee147
Зарегистрирован: 2022-09-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

парсинг авито

py.user.next
Установи питон новее, чем Python 3.2.Используй питон без Visual Studio и Visual Studio Code.Для редактирования кода поставь Sublime Text и Notepad++.Используй для запуска cmd.exe.Все пути к файлам сделай на английском языке без пробелов (вместо пробелов подчёркивания).Здесь писал, как запускать скрипты.Здесь писал, как сделать ярлык для запуска.

Сделал все как ты сказал.
Версия python 3.10.7
Путь перевел на англ язык.

C:\Users\79817>cd "C:\Users\79817\Desktop\PY\prob"

C:\Users\79817\Desktop\PY\prob>parcer2.py
И ничего не происходит
То есть я ввожу слово, которое хочу найти и он закрывается


Отредактировано roobee147 (Сен. 9, 2022 02:17:47)

Офлайн

#9 Сен. 9, 2022 02:23:38

roobee147
Зарегистрирован: 2022-09-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

парсинг авито

xam1816
Привет, попробовал, тоже ничего не вышло

Офлайн

#10 Сен. 9, 2022 10:39:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9795
Репутация: +  849  -
Профиль   Отправить e-mail  

парсинг авито

roobee147
И ничего не происходит
То есть я ввожу слово, которое хочу найти и он закрывается
Так там ничего нет. В браузере-то есть этот класс link-link-MbQDP, а в странице, скачанной питоном, этого класса нет, как и многого другого.
  
>>> import requests
>>> 
>>> url = 'https://www.avito.ru/rossiya?q=cat'
>>> request = requests.get(url)
>>> 
>>> 'link-link' in request.text
False
>>>
Оно либо возвращается при условии наличия каких-то заголовков в HTTP-протоколе, либо подгружается через JavaScript-скрипты, либо вообще и то и другое происходит.

Так что тебе более основательно надо подойти к анализу этого сайта. Он не так прост, как кажется, сайты обычно защищаются от скрапинга.



Отредактировано py.user.next (Сен. 9, 2022 10:41:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version