Этот вопрос был отредактирован, см. Обновление ниже
Я пытаюсь получить заголовок (содержимое HTML-тега) определенного URL-адреса для ответа 404. Я хочу получитьсодержимое только когда возвращает 404, потому что я проверяю, доступно ли имя пользователя instagram, используя URL с таким именем пользователя, например:
https://instagram.com/jsd23sdoleo
, которое возвращает страницу 404 html с заголовком Страница не найдена .
Теперь есть URL, подобные этому:
https://www.instagram.com/leop
Скриншот недоступен для содержимого Скриншот страницы не найден
Где этовозвращает заголовок Контент недоступен в браузере.Оказывается, что когда он возвращает «Content Unavaiable», имя пользователя не берется, но также не доступно.Единственный случай, который не берется и недоступен, это когда он возвращает «Страница не найдена».
Но мой код на Python выводит только Страница не найдена в качестве заголовка даже для URL, которые вбраузер показывает недоступность контента .
Есть ли причина для неправильного получения HTML-контента для этих URL-адресов?
ОБНОВЛЕНИЕ: Мой код Python приносит только "Страница не найдена », потому что когда я тестирую в своем браузере, я вхожу в систему, поэтому поведение отличается.Есть ли способ получить страницу HTML после входа в систему с библиотекой запросов?
Вот мой код, чтобы вы могли проверить его:
import urllib.request
from bs4 import BeautifulSoup
import requests
chars_clean = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','z','0','1','2','3','4','5','6','7','8','9']
chars = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','z','0','1','2','3','4','5','6','7','8','9','_','.']
base_url = 'https://www.instagram.com/'
leo = 'leo'
urls = []
valid_urls = []
user = []
for char_clean in chars_clean:
for char in chars:
urls.append(base_url + char_clean + char + leo)
for url in urls:
try:
#fetch html
source = urllib.request.urlopen(url)
#parse with BeautifulSoup
BS = BeautifulSoup(source, "html5lib")
#search for title element, print element.text
title = BS.title.string
except urllib.error.URLError as err:
if err.code == 404:
response = requests.get(url)
soup = BeautifulSoup(response.text, "html5lib")
title = soup.title.string
print("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
print(url)
#x = url.split('m/')
print(title) # Prints
print('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
continue
else:
valid_urls.append(url)