changing URLs in webpages, python solutions?

Simon Forman sajmikins at gmail.com
Sun Jan 18 19:37:32 EST 2009


On Jan 18, 8:40 am, Stefan Behnel <stefan... at behnel.de> wrote:
> Simon Forman wrote:
> > I want to take a webpage, find all URLs (links, img src, etc.) and
> > rewrite them in-place, and I'd like to do it in python (pure python
> > preferred.)
>
> lxml.html has functions specifically for this problem.
>
> http://codespeak.net/lxml/lxmlhtml.html#working-with-links
>
> Code would be something like
>
>         html_doc = lxml.html.parse(b"http://.../xyz.html")
>         html_doc.rewrite_links( ... )
>         print( lxml.html.tostring(html_doc) )
>
> It also handles links in CSS or JavaScript, as well as broken HTML documents.
>
> Stefan

Thank you so much! This is exactly what I needed.

(for what it's worth, parse() seems to return a "plain" ElementTree
object but document_fromstring() gave me a special html object with
the rewrite_links() method.  I think, but I didn't try it, that

html_doc = lxml.html.parse(b"http://.../xyz.html")
lxml.html.rewrite_links(html_doc, ... )

would work too.)

Thanks again!
Regards,
~Simon



More information about the Python-list mailing list