Сканирование сайта с помощью iframe - PullRequest
2 голосов
/ 05 июня 2019

Я пытаюсь сканировать данные с этого сайта.Он использует несколько iframes для различных компонентов.

Когда я пытаюсь открыть один из URL-адресов iframe в браузере, он открывается в этом конкретном сеансе, но в другом сеансе icognito / private это не«т.То же самое происходит, когда я пытаюсь сделать это через requests или wget.

Я пытался использовать запросы вместе с сеансом, тогда это тоже не работает.Вот мой фрагмент кода

import requests
s = requests.Session()
s.get('https://www.epc.shell.com/')
r = s.get('https://www.epc.shell.com/welcome.asp')
r.text

Последняя строка возвращает только текст javascript с ошибкой, что URL недействителен.

Я знаю, что Selenium может решить эту проблему, но я рассматриваю это как последний вариант.

Можно ли сканировать этот URL с помощью requests ( или без использования Javascript )?Если да, любая помощь будет оценена.Если нет, есть ли какая-нибудь альтернативная облегченная библиотека Javascript в Python, которая может достичь этого?

1 Ответ

2 голосов
/ 05 июня 2019

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

import requests

s = requests.Session()
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0", "Accept-Language": "en-US,en;q=0.5"}
s.get('https://www.epc.shell.com/', headers = headers)
r = s.get('https://www.epc.shell.com/welcome.asp', headers = headers)

print(r.text)

(обратите внимание, чтопочти всегда рекомендуется использовать заголовки при отправке запросов) .

Надеюсь, это поможет!

...