Парсинг номера телефона из рекламы OlxPython

Программы на Python
Ответить
Anonymous
 Парсинг номера телефона из рекламы Olx

Сообщение Anonymous »

Я пытаюсь создать парсер для веб-сайта olx (www.olx.pl), используя запросы и beautifulsoup. С большинством данных у меня проблем нет, но номер телефона скрыт (нужно сначала нажать на него). Я уже пытался использовать проверку Chrome, чтобы увидеть, что происходит на вкладке «Сеть», когда я нажимаю ее вручную.
Существует ajax-запрос с этой информацией. "?pt=5d1480fbad0a1f2006e865bfdf7a6fb07f244b82e17ab0ea4c5eaddc43f9da3 91b098e1926642564ffb781655d55be270c6913f7526a08298f43b24c0169636b"
Это телефонный токен, который можно найти в исходном коде веб-сайта (он меняется при каждой загрузке страницы).
Я пытался отправить такой запрос, используя библиотеку запросов, но получил в ответ «000 000 000».
Я могу получить номер телефона с помощью Selenium, но он загружается очень медленно.
Вопрос:
Есть ли способ обойти эти токены телефона безопасности?
/>или
Как ускорить Selenium для очистки номера телефона, скажем, за 1-2 секунды?
Пример объявления:
https://www.olx.pl/561666735
РЕДАКТИРОВАТЬ:
Собственно, теперь в ответ я получаю сообщение о том, что мой IP-адрес заблокирован. (Но только при использовании запросов, ip не блокируется, когда я загружаю страницу вручную).
К сожалению, я внес некоторые изменения и не могу воспроизвести код, чтобы получить в ответ «000 000 000». Сейчас это часть моего кода.
def scrape_phone(id):
s = requests.Session()
url = "https://www.olx.pl/{}".format(id)
response = s.get(url, headers=headers)
page_text = response.text
# getting short id
index_of_short_id = page_text.index("'id':'")
short_id = page_text[index_of_short_id:index_of_short_id+11].split("'")[-1]
# getting phone token
index_of_token = page_text.index("phoneToken")
phone_token = page_text[index_of_token+10:index_of_token+150].split("'")[1]
url = "https://www.olx.pl/ajax/misc/contact/ph ... (short_id)
data = {
'pt': phone_token
}
response = s.post(url, data=data, headers=headers)
print(response.text)

scrape_phone(540006276)


Подробнее здесь: https://stackoverflow.com/questions/587 ... rom-olx-ad
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»