0

一連のWebページをクロールし、ApacheSolrを使用してそれらのインデックスを作成しようとしています。Webページをクロールするために、BeautifulSoupとurllib2の助けを借りてPythonを使用しています。URLとHTMLデータを正常に取得しました。

現在、Solr(http://code.google.com/p/solrpy/)を介してSolrにインデックスを付けさせようとしています。Http404エラーが見つかりません。

デフォルトのschema.xmlを変更しておらず、ApacheSolrに付属のサンプルサーバーを使用しています。

これが私のコードです:

import sys 
import urllib2
import solr
from bs4 import BeautifulSoup
from lxml import etree
import hashlib
solrUrl = 'http://localhost:8983/solr/'
solrInstance = solr.SolrConnection(solrUrl)
conn = urllib2.urlopen('http://seekingalpha.com/market_currents.xml')   
root = etree.fromstring(conn.read())
links = root.findall(".//link")
counter = 0
for link in links:
    counter=counter+1
    url = link.text 
    url_md5 = hashlib.md5(url).hexdigest()
    conn = urllib2.urlopen(link.text)
    soup = BeautifulSoup(conn.read())
    title_page = soup.html.head.title.string.decode("utf-8")
    print title_page
    try: # Add to the Solr instance
        solrInstance.add(id=str(url_md5),url_s=url,text=str(title_page),title=str(title_page))
    except Exception as inst:
        print "Error adding URL: "+url
        print "\tWith Message: "+str(inst)
    else:
        print "Added Page \""+title+"\" with URL "+url
try:
    solrInstance.commit()
except:
    print "Could not Commit Changes to Solr Instance - check logs"
else:
    print "Success. "+str(counter)+" documents added to index"

そして、ここにエラーがあります:

Error adding URL: http://seekingalpha.com/currents/all
    With Message: HTTP code=404, reason=Not Found

これを修正するにはどうすればよいですか?前もって感謝します。

4

1 に答える 1

2

私自身は使用していませんが、いじってみたところ、 solr URLsolrpyの末尾を削除する必要があるようです。/に変更します

solrUrl = 'http://localhost:8983/solr'

于 2013-01-19T12:26:13.887 に答える