Я написал код, который получает имя пользователя от Instagram.Иногда мой алгоритм не работает, и я получаю имя как 'p'.Я пытаюсь написать код для этого исключения (в if if == 'p': часть кода).Прежде всего я использую soup.select для получения этого блока информации:
Blockquote
{"@context": "http: \ / \ / schema.org", "@ type": "ImageObject", "caption": "Я думаю, что мне становится лучше в редактировании этих .... и я имею в виду, что все больше и больше путается в точку, я не думаю, что люди смогутскажи, что они скоро .... не совсем то, к чему я иду, но да ладно. \ n- \ n \ u2022Сентября 3 2018 \ u2022 \ n- \ n- \ nЭто обновление, которое я упомянул о моих сокращениях на моемЯ наконец почистил их через два дня. Обычно я не ждал так долго, но у меня действительно не было подходящих обстоятельств, чтобы действительно очистить их в ночь рецидива. * пожимает плечами * \ n- \ n- \ n- \ n # selfharm #selfharmo "," memberOfPage ":" http: \ / \ / schema.org \ / True "," uploadDate ":" 2018-09-04T06: 27: 24 "," author ": {"@type ":" Человек "** "alternateName": "@ alittlereddrop" **, "mainEntityofPage": { "@ типа": "ProfilePage", "@ ид":" https: \ / \ / www.instagram.com \ / alittlereddrop \ / "}}," commentCount ":" 0", "InteractionStatistic": { "@ типа": "InteractionCounter", "interactionType": { "@ типа": "LikeAction"}, "userInteractionCount": "2"}, "mainEntityofPage": { "@ типа":»ItemPage "," @ id ":" https: \ / \ / www.instagram.com \ / p \ / BnS0sdDlsmP \ /? Tagged = selfharmo "}," description ":" 2 лайка, 0 комментариев - никто не заботится (@alittlereddrop) в Instagram: я думаю, что я становлюсь лучше в редактировании этих .... и я имею в виду, что все больше и больше получаю "," name ":" Никто не заботится об Instagram: \Я думаю, что я становлюсь лучше в редактировании этих .... и под этим я подразумеваю, что там все больше и больше путаются до сути дела, я не думаю, что \ u2026 \ u201d "}
Blockquote
Есть часть "alternateName": которая содержит имя.Но я не могу получить это даже с json.loads.У вас есть идеи?
file = open('users.txt', 'r', encoding="ISO-8859-1")
urls = file.readlines()
for url in urls:
url = url.strip ('\n')
try:
req = requests.get(url)
req.raise_for_status()
except HTTPError as http_err:
output = open('output2.txt', 'a')
output.write(f'К сожалению страница недоступна.\n')
except Exception as err:
output = open('output2.txt', 'a')
output.write(f'К сожалению страница недоступна2\n')
else:
output = open('output2.txt', 'a')
soup = BeautifulSoup(req.text, "lxml")
the_url = soup.select("[rel='canonical']")[0]['href']
the_url2=the_url.replace('https://www.instagram.com/','')
head, sep, tail = the_url2.partition('/')
if head == 'p':
data = soup.select("[type='application/ld+json']")[0]
oJson2 = json.loads(data.text)["alternateName"]
str (oJson2)
output.write (oJson2+'\n')
else:
output.write (head+'\n')