string encoding regex problem

Philipp Kraus philipp.kraus at flashpixx.de
Sat Aug 23 16:46:46 EDT 2014


Hi,

On 2014-08-16 09:01:57 +0000, Peter Otten said:

> Philipp Kraus wrote:
> 
>> The code works till last week correctly, I don't change the pattern. 
> 
> Websites' contents and structure change sometimes.
> 
>> My question is, can it be a problem with string encoding? 
> 
> Your regex is all-ascii. So an encoding problem is very unlikely.
> 
>> found = re.search( "<a 
>> href=\"/projects/boost/files/latest/download\?source=files\" 
>> title=\"/boost/(.*)",
>> data)
> 
>> Did I mask the question mark and quotes
>> correctly?
> 
> Yes.
> 
> A quick check...
> 
>>>> data = 
>>>> urllib.urlopen("http://sourceforge.net/projects/boost/files/boost/").read() 
>>>> 
>>>> re.compile("/projects/boost/files/latest/download\?source=files.*?>").findall(data) 
>>>> 
> ['/projects/boost/files/latest/download?source=files" 
> title="/boost-docs/1.56.0/boost_1_56_pdf.7z:  released on 2014-08-14 
> 16:35:00 UTC">']
> 
> ...reveals that the matching link has "/boost-docs/" in its title, so the
>  site contents probably did change. 

I have create a short script:

---------
#!/usr/bin/env python

import re, urllib2


def URLReader(url) :
    f = urllib2.urlopen(url)
    data = f.read()
    f.close()
    return data


print re.match( "\<small\ \>.*\<\/small\>", 
URLReader("http://sourceforge.net/projects/boost/") )
---------

Within the data the string "<small>boost_1_56_0.tar.gz</small>" should 
be machted, but I get always a None result on the re.match, re.search 
returns also a None.
I have tested the regex under http://regex101.com/ with the HTML code 
and on the page the regex is matched.

Can you help me please to fix the problem, I don't understand that the 
match returns None

Thanks

Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20140823/08407ca5/attachment.html>


More information about the Python-list mailing list