On 22/09/12 11:27 AM, Gary Dale wrote:
On 22/09/12 11:01 AM, cr...@gtek.biz wrote:
Greetings,

I have a small book collection (~150) that I thought would be neat to catalog by the Library of Congress catalog numbers. I have found a LOC search form that will allow me to input the ISBN, and it will return the information I want:

[code]http://www.loc.gov/cgi-bin/zgate?ACTION=INIT&FORM_HOST_PORT=/prod/www/data/z3950/locils2.html,z3950.loc.gov,7090[/code]

I have the list of book ISBNs in a text file, so scripting this should be quite easy. The problem is I can't figure out how to submit the form from the command line. I figured wget would be the best way, but everything I try results in downloading a single line that reads "Your form didn't include an ACTION!" So I thought I would turn to here for help. The test ISBN I am using is for The Linux Cookbook: 1886411484, QA76.76.O63S788 2001.

And a related side question. From my reading, I've learned that the Z39.50 protocol is used to query databases, usually library related. Is anyone aware of an ISBN database table that can be downloaded by the user, preferably in a format that can be imported into MySQL or PostgreSQL?

Thanks, Craig

The url you give is for the form. If you enter an ISBN number it will do the search.

What you need to do is capture the http header sent when you click "submit query" then replace the test ISBN number with whatever number you want to search. Wireshark can do this. Simply look for the query packet(s).

The fields you need are shown in the page source:

<FORM  METHOD="POST"ACTION="/cgi-bin/zgate">
<INPUT  NAME="ACTION"VALUE="SEARCH"TYPE="HIDDEN">
<INPUT  NAME="DBNAME"VALUE="VOYAGER"TYPE="HIDDEN">
<INPUT  NAME="ESNAME"VALUE="B"TYPE="HIDDEN">
<INPUT  NAME="MAXRECORDS"VALUE="20"TYPE="HIDDEN">
<INPUT  NAME="RECSYNTAX"VALUE="1.2.840.10003.5.10"TYPE="HIDDEN">
<INPUT  
NAME="REINIT"TYPE="HIDDEN"VALUE="/cgi-bin/zgate?ACTION=INIT&FORM_HOST_PORT=/prod/www/data/z3950/locils2.html,z3950.loc.gov,7090">
<INPUT  NAME="srchtype"VALUE="1,1016,2,102,3,3,4,2,5,100,6,1"TYPE="HIDDEN">

<P>
<STRONG>Enter Search Term(s):</STRONG><br>(The search term can be a single word or a 
phrase from anywhere in the record.  Enter an author's name in indirect order, i.e., last_name, 
first_name.)<p>
<INPUT  NAME="TERM_1"SIZE="60">
<p>
<INPUT  TYPE="SUBMIT"VALUE="Submit Query">
<INPUT  Type="RESET"VALUE="Clear Form">
<HR>
Use of this form results in a search of the LC Voyager database (approximately
14 million records).  This database contains records in all bibliographic
 formats (i.e., books, serials, music, maps, manuscripts, computer files, and
 visual materials), and includes the retrospective, unedited older bibliographic
 records known as the PreMARC File.  LC name and subject authority records
 cannot be searched.
<INPUT  NAME="SESSION_ID"VALUE="5923056"TYPE="HIDDEN">
</FORM>


You need to construct the query using those fields with those values, with 
TERM_1 containing the ISBN number.

From the error you are getting, it seems like your query either didn't include 
the SEARCH action or the header wasn't understood.




--
To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/505ddc87.1080...@rogers.com

Reply via email to