cpeters5
asked on
Python TypeError
The following code snippet fetches content of a url and searches for string of the form "abc-1234"
In this example, the "url http://www.theplantlist.org/1.1/browse/A/Orchidaceae/Aa/" does contain a line
<a href="/tpl1.1/record/kew-3 4">
When matching against this string directly (8 - 10) the pattern works, but when matching within the for loop, I got TypeError. Seems like Python is not happy with type mismatch. How do I fix this?
In this example, the "url http://www.theplantlist.org/1.1/browse/A/Orchidaceae/Aa/" does contain a line
<a href="/tpl1.1/record/kew-3
When matching against this string directly (8 - 10) the pattern works, but when matching within the for loop, I got TypeError. Seems like Python is not happy with type mismatch. How do I fix this?
from urllib.request import Request, urlopen
from urllib.error import URLError
import re
root = 'http://www.theplantlist.org/'
genurl = '{0}1.1/browse/A/Orchidaceae/Aa/'.format(root)
line = '<a href="/tpl1.1/record/kew-456080">'
p = re.search('<a href="(.*?)record/(.*?)-(\d+)".*?>', line)
print(p.group(2), p.group(3))
try:
greq = Request(genurl)
except:
x = 'Error connecting to {0}'.format(genurl)
sys.exit(x)
gresponse = urlopen(greq)
for gline in gresponse:
#--Example <a href="/tpl1.1/record/kew-456080">
p = re.search('<a href="(.*?)record/(.*?)-(\d+)".*?>', gline)
print("\t",p.group(2),p.group(3))
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
ASKER