經過3個小時的磨合,我能夠從數據中創建可解析的XML文檔。不幸的是,我沒有成功完成一套完全可重複使用的步驟,可以用於未來的拍賣出版物。
另外,我確實試圖打電話詢問洛杉磯縣是否可以提供拍賣(excel等)屬性的替代格式,答案是否定的。這是你的政府。
這裏是我的方法的高級視圖:
我以前http://xmlbeautifier.com/作爲我的XML美化/驗證,因爲它速度快,它給了準確的錯誤報告,其中包括行號。
使用Homebrew安裝poppler的爲Mac:
brew install poppler
安裝poppler的後,你應該有機會獲得pdftotext實用程序將PDF轉換:
pdftotext -layout -f 24 -l 687 AuctionBook2013.pdf auction_book.txt
這裏的XML的預覽(Click here for full XML):
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<item id="1">
<nsb>536</nsb>
<minbid>3,422</minbid>
<apn>2006 003 001</apn>
<delinquent_year>03</delinquent_year>
<apn_old>2006 003 001</apn_old>
<description>LICENSED SURVEYOR'S MAP
AS PER BK 25 PG 28 OF L S LOT 1
BLK 1 ASSESSED TO J AND S
LIMITED LLC C/O DUNA CSARDAS -
JULIUS JANCSO LOCATION COUNTY OF
LOS ANGELES</description>
<address>VACANT LOT</address>
</item>
編輯:添加我編寫的Ruby將XML轉換爲CSV。
require 'rexml/document'
require 'CSV'
class Auction
def initialize
f = File.new('AuctionBook2013.xml', 'r')
doc = REXML::Document.new(f)
CSV.open("auction.csv", "w+b") do |csv|
csv << ['id', 'minbid', 'apn', 'delinquent_year', 'apn_old', 'description', 'address']
doc.elements.each('/listings/item') do |item|
csv << [item.attributes['id'],
item.elements['minbid'].text,
item.elements['apn'].text,
item.elements['delinquent_year'].text,
item.elements['apn_old'].text,
item.elements['description'].text,
item.elements['address'].text]
end
end
end
end
a = Auction.new()
Link to Final CSV
我的想法是使用一個PDF文本轉換器,然後分析文本文件(假設轉換器爲您提供了一個可預測的輸出格式)。 –
是的,我試過了。有一個我嘗試過的紅寶石項目(https://github.com/kitplummer/pdftohtmlr),它吐出垃圾。 – doremi
怎麼樣的文字?這看起來像它的HTML。 –