On Nov 12, 9:07 pm, [EMAIL PROTECTED] wrote: > my code > ------------------------------------------------------------------------------------------- > # -*- coding: utf8 -*- > #!/usr/bin/python > > import urllib > import urllib2 > import re > import MySQLdb > > conn=MySQLdb.connect > (host="localhost",user="root",passwd="ylj",db="net", charset="utf8") > cur = conn.cursor() > sql='select > net_site.downline_re,net_site.down_re,net_cha.id,net_cha.urlid,net_cha.source_url > from net_site,net_cha where net_site.id=net_cha.urlid' > cur.execute(sql) > re=cur.fetchall()
You have bound the name "re" to the tuple returned by cur.fetchall() This overrides the binding to the re module. Use "result" or some other meaningful name instead. > if len(re)!=0: > for i in re: > down_re="%s"%(i[1]) > source_url="%s"%(i[4]) > data= urllib2.urlopen(source_url).read() > res=re.compile(down, re_DOTALL).findall(data) So re is a tuple, not the re module ... splat! And another problem: down is not defined; do you mean down_re? > print str Here are your next two problems: (1) str is not defined (2) str is a type; use some other meaningful name for whatever it is that you are trying to print HTH, John -- http://mail.python.org/mailman/listinfo/python-list