Я создаю скребок с Python. Он работает, когда я помещаю статический URL-адрес, но я хотел бы сделать для каждого URL-цикла с JSON файлом.
Этот код возвращает ошибку KeyError. Я красным онлайн, что это происходит потому, что это объект, а не массив. Я не знаю, как это исправить. Может ли кто-нибудь указать мне правильно или, возможно, даже просмотреть код? Я разместил несколько скриншотов об ошибках, как я просматриваю информацию JSON и способ структурирования файла JSON.
Структура JSON:
from bs4 import BeautifulSoup
import requests
import json
with open("C:\data.json") as my_json:
json_dict = json.load(my_json)
for website in json_dict[0][0]:
print("About to scrape: ", website)
print('step 1')
#get url
page_link = website
print('step 2')
#open page
page_response = requests.get(page_link, timeout=1)
print('step 3')
#parse page
page_content = BeautifulSoup(page_response.content, "html.parser")
print('step 4')
#Find info
naam = page_content.find_all(class_='<random class>')[0].decode_contents()
print('step 5')
#Print
print(naam)
В вашем json файле открывающая скобка всего этого не называется, попробуйте json_dict['data']['url']['loc'][0]
ей данные, а затем вызовите ее с помощью json_dict['data']['url']['loc'][0]
(для самого URL-адреса)
for website in json_dict['url'][0]['loc']: