2013-03-26 107 views
0

我想從使用美麗的Craigslist獲取數據PID和價格。我寫了一個單獨的代碼給我的文件CLallsites.txt。在此代碼中,我試圖從txt文件中獲取每個網站,並獲得前10頁中所有條目的PID。我的代碼是:美麗的湯URL錯誤

from bs4 import BeautifulSoup  
    from urllib2 import urlopen 
    readfile = open("CLallsites.txt") 
    product = "mcy" 
    while 1: 
    u = "" 
    count = 0 
    line = readfile.readline() 
    commaposition = line.find(',') 
    site = line[0:commaposition] 
    location = line[commaposition+1:] 
    site_filename = location + '.txt' 
    f = open(site_filename, "a") 
    while (count < 10): 
     sitenow = site + "\\" + product + "\\" + str(u) 
     html = urlopen(str(sitenow))      
     soup = BeautifulSoup(html)     
     postings = soup('p',{"class":"row"}) 
     for post in postings: 
      y = post['data-pid'] 
      print y 
     count = count +1 
     index = count*100 
     u = "index" + str(index) + ".html" 
    if not line: 
     break 
    pass    

我CLallsites.txt看起來是這樣的:

Craiglist上的網站,位置(#2不允許與克雷格列表的聯繫張貼所以我不能顯示的文字,我可以嘗試的附加文本文件是否有幫助)

當我運行代碼,我得到以下錯誤:

回溯(最近通話最後一個):

文件「 reading.py」,第16行,在 HTML =的urlopen(STR(sitenow))

文件 「/usr/lib/python2.7/urllib2.py」,線路126,在的urlopen 返回_opener.open(的URL,數據,超時)

文件 「/usr/lib/python2.7/urllib2.py」,線路400,在開放 響應= self._open(REQ,數據)

文件「/ USR /lib/python2.7/urllib2.py」,線418,在_open '_open',REQ)

文件 「/usr/lib/python2.7/urllib2.py」,線路378,在_call_chain 結果= FUNC(*參數)

文件 「/usr/lib/python2.7/urllib2.py」,線1207,在http_open 返回self.do_open(httplib.HTTPConnection,REQ)

文件「/usr/lib/python2.7/urllib2.py」,線1177,在do_open 提高URLError(ERR)

urllib2.URLError:

什麼我做錯了任何想法?

+0

您可以在urlopen之前放置「打印sitenow」並查看打印出來的內容嗎? – Bemmu 2013-03-26 23:58:19

回答

0

我不知道什麼是sitenow的內容,但它看起來像是一個無效的URL。請注意,URL使用斜槓而不是反斜槓(因此聲明應該類似於sitenow = site + "/" + product + "/" + str(u)