On 12/14/14 11:15 AM, Simon Evans wrote:
Dear Python programmers,
Having input the line of code in text:
cd Soup
to the Windows console, and having put the file 'EcologicalPyramid.html' into 
the Directory 'Soup', on the C drive, in accordance with instructions I input 
the following code to the Python console, as given on page 30 of 'Getting 
Started with Beautiful Soup':
----------------------------------------------------------------------------
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
from bs4 import BeautifulSoup
with open("ecologicalpyramid.html","r") as ecological_pyramid:
...      soup = BeautifulSoup(ecological_pyramid,"lxml")
... producer_entries = soup.find("ul")

            ^
SyntaxError: invalid syntax

This SyntaxError is indicating that none of the code you have just typed was run. The reason it's a syntax error is because the interactive prompt is a bit simplistic about how to handle multiple statements. It wants a blank line after the with-clause.

Because none of these lines were run, you never opened your HTML file, never parsed it, and never assigned to the name "soup".

producer_entries = soup.find("ul")
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
NameError: name 'soup' is not defined

            ^
----------------------------------------------------------------------------
so I cannot proceed with the next line withh would 've been :
----------------------------------------------------------------------------
print(producer_entries.li.div.string)
----------------------------------------------------------------------------
which would've given (according to the book) the output:
---------------------------------------------------------------------------
plants

Maybe that is getting a bit far ahead, but I can't quite see where I have gone 
wrong - 'soup' has been defined as an object made of file 
'EcologicalPyramid.html

I hope you can help me on this point.

For complex code experiments, it's better to put the code in a file, and run the file. But if you do want to use the interactive interpreter, enter code carefully, and watch out for the error messages.

--
Ned Batchelder, http://nedbatchelder.com

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to