Я создал программу, которая извлекает названия продуктов и цены из newEgg, однако после обработки последнего продукта на веб-странице я получаю сообщение об ошибке «Ошибка атрибута: объект« Нетипа »не имеет атрибута« сильный ». I» Я вполне уверен, что это ошибка нулевого указателя, поскольку l oop проходит через все элементы веб-страницы, однако я попытался выполнить итерации для itemContainers-1, а также установить точку останова в l oop для itemcontainers. -1, и это все еще не работает. Кроме того, куда я должен поместить Client.close (), в конце правильно?
import bs4
#uReq is our arbitrary shorthand for urllib.request
import urllib
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
#The URL we plan to use
my_url = 'https://www.newegg.com/'
#uReq(my_url) opens up web client
Client = uReq(my_url)
#uClient.read dumps everything out of the url
html_page = Client.read()
Client.close()
page_soup = soup(html_page, "html.parser")
itemContainers= page_soup.findAll("div", {"class":"item-container"})
for i in range(0,len(itemContainers)):
if i is len(itemContainers)-1:
{
breakpoint
}
#itemTitles is a list of all of the titles found on the web page
itemTitles = page_soup.findAll("a", {"class": "item-title"})
divWithPriceInfo = itemContainers[i].find("ul", "price")
left_Dec = divWithPriceInfo.strong.text
right_Dec = divWithPriceInfo.sup.text
stringStrong = str(left_Dec)
stringSup = str(right_Dec)
print(itemTitles[i].text)
print(stringStrong + stringSup)