[Tutor] retrieve URLs and text from web pages

Khawla Al-Wehaibi kwehaibi at yahoo.com
Tue Jun 29 17:12:20 CEST 2010


Thanks Tino. Sorry for the way the post looks. It is terrible to read.

I decided to go with Regular Expressions to modify the text. In the Python.org it is stated that they provide more options and flexibilty compared to strings and their modules.

Thanks



--- On Tue, 29/6/10, Tino Dai <oberoc at gmail.com> wrote:

From: Tino Dai <oberoc at gmail.com>
Subject: Re: [Tutor] retrieve URLs and text from web pages
To: "Khawla Al-Wehaibi" <kwehaibi at yahoo.com>
Cc: tutor at python.org
Date: Tuesday, 29 June, 2010, 5:34


On Sun, Jun 27, 2010 at 12:15 PM, Khawla Al-Wehaibi <kwehaibi at yahoo.com> wrote:

Hi,

I’m new to programming. I’m currently learning python to write a web crawler to extract all text from a web page, in addition to, crawling to further URLs and collecting the text there. The idea is to place all the extracted text in a .txt file with each word in a single line. So the text has to be tokenized. All punctuation marks, duplicate words and non-stop words have to be removed.

 Welcome to Python! What you are doing is best done in a multi step process so that you can understand everything that you are doing. To really
leverage Python, there are a couple of things that you need to read right off the bat.


http://docs.python.org/library/stdtypes.html   (Stuff about strings). In Python, everything is an object so everything will have methods or functions related to it. For instance, the String object has a find method that will return position of the string. Pretty handy if you ask me.


Also, I would read up on sets for python. That will reduce the size of your code significantly. 


The program should crawl the web to a certain depth and collect the URLs and text from each depth (level). I decided to choose a depth of 3. I divided the code to two parts. Part one to collect the URLs and part two to extract the text. Here is my problem:


1.    The program is extremely slow. 

The best way to go about this is to use a profiler:

 http://docs.python.org/library/profile.html



2.    I'm not sure if it functions properly.

To debug your code, you may want to read up on the python debugger.
 http://docs.python.org/library/pdb.html



3.    Is there a better way to extract
 text?

See the strings and the lists. I think that you will be pleasantly surprised
 

4.    Are there any available modules to help clean the text i.e. removing duplicates, non-stop words ...


Read up on sets and the string functions/method. They are your friend 

5.    Any suggestions or feedback is appreciated.


-Tino

PS: Please don't send html ladden emails, it makes it harder to work with. Thanks 





      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100629/c306e7c6/attachment-0001.html>


More information about the Tutor mailing list