2017-12-12 43 views
0

次のプログラムは、スラッシュの有無にかかわらずURLを含む出力を与えています(ask.census.govやask.census.govなど)。私はどちらか一方を排除する必要があります。ご協力いただきありがとうございます!スラッシュを含むURLを含む、Pythonの重複URLの削除

from bs4 import BeautifulSoup as mySoup 
from urllib.parse import urljoin as myJoin 
from urllib.request import urlopen as myRequest 

my_url = "https://www.census.gov/programs-surveys/popest.html" 

# call on packages 
html_page = myRequest(my_url) 
raw_html = html_page.read() 
html_page.close() 
page_soup = mySoup(raw_html, "html.parser") 

f = open("censusTest.csv", "w") 

hyperlinks = page_soup.findAll('a') 

set_urls = set() 

for checked in hyperlinks: 
    found_link = checked.get("href") 
    result_set = myJoin(my_url, found_link) 
    if result_set and result_set not in set_urls: 
     set_urls.add(result_set) 
     f.write(str(result_set) + "\n") 

f.close() 

答えて

0
my_url = "https://www.census.gov/programs-surveys/popest.html/" 
if my_url[-1:] == '/': 
    my_url = my_url[:-1] 

このコードのスニップは、あなたの文字列の最後の文字が「/」であり、それであれば、それはそれを削除するかどうかをチェックします。 Pythonの文字列操作の

良い例: http://www.pythonforbeginners.com/basics/string-manipulation-in-python

+0

は 'と等しくなるmy_url'はないでしょう'/'このコードを実行した後? – alecxe

+0

アレクセが正しいです、私は間違いを修正しました。ありがとうございました – Zac

0

あなたはいつもright-strip the slashすることができます - 存在する場合、それが除去されると、何も行われない場合ではないされます。

result_set = myJoin(my_url, found_link).rstrip("/") 
関連する問題