Stack Overflow на русском Asked by ShevchukAndry on November 22, 2021
Хочу спарсить все ссылки изображений из поста инстаграм,понял где можно найти их,этим местом оказался вложенный словарь,как его перебрать я не знаю
Вот код
import requests
import json
from bs4 import BeautifulSoup as BS
import re
url = 'https://www.instagram.com/p/B5n2EXjF_1C/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
JS_SHARED_DATA_PATTERN = re.compile('window._sharedData = ({.+});')
r = requests.get(url, headers=headers, allow_redirects=True)
soup = BS(r.content, 'html.parser')
script = soup.find('script', attrs={'type':"text/javascript"}, text=JS_SHARED_DATA_PATTERN)
m = JS_SHARED_DATA_PATTERN.search(script.text)
shared_data_text = m.group(1)
data = json.loads(shared_data_text)
print(data)
Если что,нужно получить информацию по ключу ‘display_url’
Извините сразу,я только учусь это делать,если я задаю банальный или глупый вопрос
import requests
import json
from bs4 import BeautifulSoup as BS
url = 'https://www.instagram.com/p/B5n2EXjF_1C/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
JS_SHARED_DATA_PATTERN = re.compile('window._sharedData = ({.+});')
r = requests.get(url, headers=headers, allow_redirects=True)
soup = BS(r.content, 'html.parser')
script = soup.find(
'script', attrs={'type': "text/javascript"}, text=JS_SHARED_DATA_PATTERN)
m = JS_SHARED_DATA_PATTERN.search(script.text)
shared_data_text = m.group(1)
data = json.loads(shared_data_text)
array = data['entry_data']['PostPage'][0]['graphql']['shortcode_media']['edge_sidecar_to_children']['edges']
result = {}
for i, img in enumerate(array):
result[i] = img['node']['display_url']
print(result)
Answered by Alex on November 22, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP