2015-05-04 124 views
1

得到重複我完全新的Python和只是想開發一些程序網站刮板 - 輸出

我已經在Python 2.7編碼以下程序從目錄讀取配置文件的URL我的編碼技能 - http://www.uschirodirectory.com/entire-directory/list/alpha/a.html

但是,我注意到在獲取的URL列表中有很多重複的條目。有人可能會檢查代碼,並告訴我是否有我在這裏做的事情,或者有沒有一種方法可以進一步優化此代碼。

非常感謝

import requests 
from bs4 import BeautifulSoup 

def web_crawler(max_pages): 
p = '?site=' 
page = 1 
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 
while page <= max_pages: 
    for i in alpha: 
     url = 'http://www.uschirodirectory.com/entire-directory/list/alpha/' + str(i) + '.html' + p + str(page) 
     code = requests.get(url) 
     text = code.text 
     soup = BeautifulSoup(text) 
     for link in soup.findAll('a',{'class':'btn'}): 
      href = 'http://www.uschirodirectory.com' + link.get('href') 
      print(href) 
    page += 1 
i += alpha[0 + 1] 

#Run the crawler 
web_crawler 

回答

2

基本上你的代碼就可以了。您可能會得到大量重複鏈接,導致目錄結果不僅僅針對醫生名稱中的單字母結果而且還針對公司標題或其他重要數據庫字段中的單字母結果。

+0

感謝您對我的評論。我是一名Python新手學習者,來自像你這樣的專業Python程序員的反饋對我來說非常寶貴。 –

+0

@pb_ng,歡迎您。我很高興我能幫助你。 –

2

您可以將數據存儲在一個列表中,你也可以使用此代碼刪除重複的網址:

parsedData = []

數據= {}

如果沒有任何(d [ 'url'] == data ['url'] for data in data):

parsedData.append(data) 
+1

感謝Ranvijay :) –