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