Я начал парсить на питоне, обычно в большинстве случаев работает почти 99% материала. Но я сталкиваюсь с проблемами, которых, по моему мнению, быть не должно (потому что, когда я пытаюсь выполнить ту же очистку, используя другие языки, мне это удалось).
Я постараюсь опубликовать несколько примеров конкретных сайтов для каждой проблемы.
Одна проблема заключается в том, что некоторые сайты я могу очистить с помощью http, но это не удается для https, а для других это не удается для https и не для http. Также несколько раз я получал один код ответа для http и 200 для https или наоборот. Как я могу изменить его, чтобы я всегда мог очищать «http»? как мне удалось сделать это на других языках.
пример:
res=requests.get('http://{}'.format("asmc.com"), headers=headers, allow_redirects = True)
number= str(res.status_code)
soup = BeautifulSoup(res.text, 'html.parser')
title=soup.title.string
title
приведенный выше код для этого сайта asmc.com работает, только если я использую https, а не если я использую http. Почему? Как мне это решить?
Вторая проблема заключается в том, что некоторые сайты я не мог парсить ни с помощью http, ни с https, хотя на других языках я мог. поскольку это действительные сайты со всеми тегами html
пример:
res=requests.get('http://{}'.format("alljobs.co.il"), headers=headers, allow_redirects = True)
number= str(res.status_code)
soup = BeautifulSoup(res.text, 'html.parser')
title=soup.title.string
title
этот сайт alljobs.co.il я не могу найти его тег, используя http или https. Почему? Как это исправить?
если вам интересно, это заголовок, который я использовал, но даже без него я получаю те же результаты, что и для других сайтов, и он мне помог. Но для них я не смог найти решение.
заголовки = { 'Accept-Encoding': 'gzip, deflate, sdch', «Принять язык»: «en-US, en; q = 0,8», «Небезопасные запросы на обновление»: «1», «User-Agent»: «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/56.0.2924.87 Safari/537.36», 'Принять': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8', 'Кэш-Контроль': 'max-age=0', «Соединение»: «поддерживать активность», }
Некоторые сайты поддерживают только https и не имеют настройки переадресации с http...
И на alljobs.co.il есть куча Javascript, который загружает сайт, поэтому вам нужно будет использовать модуль с поддержкой JS, например
selenium
.спасибо. Но @MattDMo здесь не может быть правдой. Это происходит здесь и на многих других сайтах только здесь на python. Когда я очищаю сайты на разных языках, все работает нормально. Также вы можете проверить, что на первом сайте есть переадресация с http и он направлен на https, вы можете проверить его инструменты. Наконец, я хочу подчеркнуть, что я получаю суп и код, но не могу получить заголовок, хотя я мог бы получить заголовок, например, с помощью javascript. даже когда я использовал http, а не https
requests
не анализирует/не выполняет Javascript, как, вероятно, делают другие ваши механизмы парсинга, особенно, если одним из ваших языков является JS. Попробуйте вместо этого использоватьselenium
илиphantomjs
.@MattDMo да, я использовал JS, и это сработало. Как мне использовать селен для этого, у вас есть код? я новичок в питоне
selenium.dev/documentation и выберите параметры Python.
Убедитесь, что вы загрузили веб-драйвер для выбранного вами браузера и что он находится в вашем PATH (или вы передаете путь при запуске
driver
в своем коде).пробовал выдает ошибки не работает