Найти - Пользователи
Полная версия: парсинг авито
Начало » Python для новичков » парсинг авито
1 2 3
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('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'

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

Здесь писал, как запускать скрипты.
Здесь писал, как сделать ярлык для запуска.
ZerG
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 прекрасный выбор
xam1816
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'])
py.user.next
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
Не нужно такое советовать
Если бы он сделал изначально так, как я написал, то он бы этот топик даже не создал, потому что этой проблемы у него бы не возникло. Он бы сидел и занимался парсингом Авито, а не вот этими вот установками-доустановками.
ZerG
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.
py.user.next
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'
На вон, проведи анализ, куда там буква п делась из пробников.
roobee147
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
xam1816
Привет, попробовал, тоже ничего не вышло
py.user.next
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-скрипты, либо вообще и то и другое происходит.

Так что тебе более основательно надо подойти к анализу этого сайта. Он не так прост, как кажется, сайты обычно защищаются от скрапинга.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB