Thanks Piet for the quick response. Yes, i was running it line by line. When i ran >>> len(containers), the output is giving me 37 but when i ran the code as a py file, it was only showing one result. Thanks in advance.
Adrian On Feb 19, 2019, at 4:38 AM, Piet van Oostrum <pie...@vanoostrum.org> wrote: > Adrian Ordona <adrian.ord...@gmail.com> writes: > >> Hi, >> >> I’m learning how to code and interested in web scrapping to gather data. >> I’m running on Mac OS X 10.9.5 and python 3.7 terminal. >> I’m trying to capture the name of the brand and price but i keep getting an >> error (see below). >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File "/anaconda3/lib/python3.7/site-packages/bs4/element.py", line 1884, in >> __getattr__ >> "ResultSet object has no attribute '%s'. You're probably treating a list >> of items like a single item. Did you call find_all() when you meant to call >> find()?" % key >> AttributeError: ResultSet object has no attribute 'find'. You're probably >> treating a list of items like a single item. Did you call find_all() when >> you meant to call find()? >> >> >> Here’s what i got and thanks for the help >> >> import bs4 >> from urllib.request import urlopen as uReq >> from bs4 import BeautifulSoup as soup >> >> my_url = >> 'https://www.newegg.com/Desktop-Graphics-Cards/SubCategory/ID-48?Tid=7709' >> >> uClient = uReq(my_url) >> page_html = uClient.read() >> uClient.close() >> page_soup = soup(page_html, "html.parser") >> records = [] >> >> containers = page_soup.findAll("div",{"class":"item-container"}) >> >> for container in containers: >> brand = container.find('div', attrs={'class':'item-branding'}) >> price = container.find('div', attrs={'class':'item-action'}) >> records.append((brand, price)) >> > When I put this in a python file, and run it under python3.7, it works. > It seems you were running this line by line interactively, tight? > > Could it be that you accidentally entered > brand = containers.find('div', attrs={'class':'item-branding'}) > i.e containers rather than container, because that would generate the error > that you copied. > -- > Piet van Oostrum <pie...@vanoostrum.org> > WWW: http://piet.vanoostrum.org/ > PGP key: [8DAE142BE17999C4] > -- > https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list