Могут ли компании ограничить то, что можно удалить со своих сайтов? - PullRequest
0 голосов
/ 28 мая 2018

Я изучаю очистку веб-страниц с использованием запросов и Beautiful Soup с Python3.

Я пытался извлечь информацию с разных веб-сайтов, и у меня не было проблем.

Однако я посетил сайт packtpub.com (https://www.packtpub.com/)), и при отправке запроса с использованием запросов для хранения содержимого всего сайта в переменной я получил следующее сообщение:

import requests
url = 'https://www.packtpub.com/'
req = requests.get(url)
req.raise_for_status()
reqText = req.text
print(reqText)

"requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://www.packtpub.com/" 

Позже я обыскал все книги Python и отправил запрос, используя URL-адрес первой страницы результатов. https://search.packtpub.com/?query=python&refinementList%5Breleased%5D%5B0%5D=Available

В этом случае я не получил исключения, ноЯ заметил, что содержание в переменной - это еще не все. Я имею в виду, что с помощью инспектора элементов, такого как Mozilla Firefox, я мог получить информацию о заголовках, авторах, формате и т. Д., Но эта информация не была сохранена в моей переменной.

Я думал, что можно извлечь информацию из общедоступного контента любого веб-сайта.

Мои вопросы: Могут ли компании ограничить то, что можно удалить со своих сайтов? Всегда ли разрешено удалятьпубличное содержание веб-сайтов или есть какие-то правовые вопросы, которые следует учитывать?

Меня удивил тот факт, что элементИнспектор сообщил мне весь контент, но библиотека запросов не имеет доступа ко всему этому.

1 Ответ

0 голосов
/ 29 мая 2018

В этом случае веб-сайту требуется заголовок User-Agent .Поведение по умолчанию в requests не отправляет этот заголовок, отметьте этот пост .В следующем примере значение заголовка User-Agent устанавливается на Mozilla:

import requests
url = 'https://www.packtpub.com/'
req = requests.get(url, headers= {"User-Agent": "Mozilla"})
req.raise_for_status()
reqText = req.text
print(reqText)

. Обратите внимание, что некоторые веб-сайты автоматически отклоняют запросы без заголовка User-Agent или запросы, содержащие значение User-Agent, например curl или * 1011.* которые могут прийти от бота.Прочтите это руководство о предотвращении веб-скрапинга, которое поможет понять некоторые методы, используемые веб-сайтом против бота

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...