gpt4 book ai didi

python - 使用 ScraperWiki 抓取 PDF 并收到未定义错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:39 25 4
gpt4 key购买 nike

我正在尝试使用 ScraperWiki 抓取此 PDF。当前代码给我一个名称“数据”未定义的错误,但我收到错误

elif int(el.attrib['left']) < 647: data['Neighborhood'] = el.text

如果我评论该行,我会在 else 语句中得到相同的错误。

这是我的代码

import scraperwiki
import urllib2, lxml.etree
#Pull Mondays
url = 'http://www.city.pittsburgh.pa.us/police/blotter/blotter_monday.pdf'
pdfdata = urllib2.urlopen(url).read()
xmldata = scraperwiki.pdftoxml(pdfdata)
root = lxml.etree.fromstring(xmldata)
# how many pages in PDF
pages = list(root)
print "There are",len(pages),"pages"
# Test Scrape of only Page 1 of 29
for page in pages[0:1]:
for el in page:
if el.tag == "text":
if int(el.attrib['left']) < 11: data = { 'Report Name': el.text }
elif int(el.attrib['left']) < 317: data['Location of Occurrence'] = el.text
elif int(el.attrib['left']) < 169: data['Incident Time'] = el.text
elif int(el.attrib['left']) < 647: data['Neighborhood'] = el.text
elif int(el.attrib['left']) < 338: data['Description'] = el.text
else:
data['Zone'] = el.text
print data

我做错了什么?

此外,如有任何更好解决方案的建议,我们将不胜感激。

最佳答案

除非您跳过了一些代码,否则您的 data仅当此行中的条件匹配时才会创建字典:

if int(el.attrib['left']) < 11: data = { 'Report Name': el.text }

您在 data 中设置值的所有其他行依赖于它已经存在,所以你会得到 NameError如果第一个条件不匹配。

快速解决办法是始终创建一个空的数据字典,例如

for page in pages[0:1]:
for el in page:
data = {}
if el.tag =="text":

等等

关于python - 使用 ScraperWiki 抓取 PDF 并收到未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22754233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com