Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 16, 2021 00:50:42

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

Подскажите пожалуйста как получить данные с сайта если они спрятаны за строкой поиска, т.е. заходим на сайт,
а там через строку поиска <input name=“location” type=“text” style=“width: 100%” />
вводим слово и после нажатия кнопки <input name=“Submit1” type=“submit” value=“Submit” style=“width: 157px” />
получаем результат на этой же страничке, который и хотелось бы спарсить.
Вопрос в том как программно отправить запрос с нужным словом и получить ответ.
На этом сайте БД ip-шников зарезервированных за странами , вот я и хочу автоматически программно получать зарезервированный пул за страной
Пытаюсь сделать вот так

 from bs4 import BeautifulSoup
import requests
 
url = "https://suip.biz/?act=ipcountry"
data = {'filter[search]': 'ru'}
 
response = requests.post(url, data=data)
soup = BeautifulSoup(response.content, "lxml")
 
quote_list = soup.findAll("div")
print(quote_list)

но в ответ пустота
 []
Process finished with exit code 0

Отредактировано vovakms (Июнь 16, 2021 00:51:49)

Офлайн

#2 Июнь 20, 2021 00:22:16

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 288
Репутация: +  11  -
Профиль   Отправить e-mail  

Получить результат поиска

Зашел на тот сайт. У него при запросе отправляется еще и какой-то токен, скорее всего он генерируется JS на странице. Попробуй найти другой подобный сайт, иначе почитай про selenium. По крайней мере мне запрос с твоими данными вернул “Ваш запрос не принят.”

 from selenium import webdriver
from bs4 import BeautifulSoup as bs
opts = webdriver,ChromeOptions()
opts.add_argument("--headless")
drv = driver.Chrome(options=opts)
drv.get("https://suip.biz/?act=ipcountry")
drv.find_element_by_id(....).send_keys(...)
Дальше сам додумаешь, просто идея



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Июнь 30, 2021 23:43:48

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

DamMercul прошу прощения что прозевал Ваш ответ,
если не трудно подскажите еще по Вашему запросу, я пытаюсь его выполнить мне в ответ ошибка

opts = webdriver, ChromeOptions()
NameError: name ‘ChromeOptions’ is not defined

Отредактировано vovakms (Июль 1, 2021 00:08:49)

Офлайн

#4 Июль 1, 2021 10:35:19

rumactep
Зарегистрирован: 2021-02-11
Сообщения: 14
Репутация: +  1  -
Профиль   Отправить e-mail  

Получить результат поиска

opts = webdriver, ChromeOptions()

не через запятую а через точку пишите

Офлайн

#5 Июль 1, 2021 10:52:21

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

Спасибо поправил, но теперь другая ошибка

raceback (most recent call last):
File “/……./PROJ/Python/Parser001/fun4.py”, line 6, in <module>
drv = driver.Chrome(options=opts)
NameError: name ‘driver’ is not defined

Process finished with exit code 1

PyCharm предлагает “Import lib2to3.pgen2.driver”

Офлайн

#6 Июль 2, 2021 01:19:36

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

Установил selenium и все остальное необходимое для работы , запускаю

 from selenium import webdriver
opts = webdriver.ChromeOptions()
opts.add_argument("--headless")
drv = webdriver.Chrome(options=opts)
drv.get("https://suip.biz/?act=ipcountry")
# drv.find_element_by_id("pre").send_keys("1")

все нормально отрабатывает, секунд за 5
———————————————————————
Process finished with exit code 0
———————————————————————
а если раскаментирую последнюю строчку то ошибка
——————————————————————————————————————————————————–
Message: no such element: Unable to locate element: {“method”:“css selector”,“selector”:""}
(Session info: headless chrome=91.0.4472.114)
——————————————————————————————————————————————————–

Офлайн

#7 Июль 9, 2021 00:40:42

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

Помогите пожалуйста, может знает кто нибудь

Офлайн

#8 Июль 9, 2021 10:19:48

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 7899
Репутация: +  552  -
Профиль   Отправить e-mail  

Получить результат поиска

vovakms
Вы, дорогой, утомили сообщество своей тупостью. Перед тем как использовать профессиональные инструменты не плохо бы освоить азбуку, вы так не думаете? Ну, вы пойдите на любой другой профессиональный форум, скажем, на форум фотографов и начните там задавать вопросы типа “а я вот купил Nikon D6, смотрю в дырочку, а там ничо не видно, а когда нажимаю на круглую кнопку оно делает вжик. А я не хочу вжик, хочу фоточку чтобы продать можно было задорого”. Долго вас там будут терпеть? Почему вы думаете, что вас здесь терпеть должны? Учебник - сначала, вопросы - потом.



Офлайн

#9 Июль 9, 2021 18:02:23

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 288
Репутация: +  11  -
Профиль   Отправить e-mail  

Получить результат поиска

vovakms
opts = webdriver, ChromeOptions()NameError: name ‘ChromeOptions’ is not defined
Ты че, запятую на точку не поменял? Зачем ты пишешь на этот форум, если синтаксис не знаешь толком



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#10 Июль 10, 2021 02:45:02

vovakms
Зарегистрирован: 2021-06-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить результат поиска

DamMercul
посмотрите сообщения , запятая не моя ошибка , я написал без запятой а с точкой,

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version