2017-08-20 3 views
-3

国勢調査のウェブサイトからURLのリストを取得して、重複していないことを確認してから、その重複していないURLのリストを.csvファイルにエクスポートするよりも、しかし、私のsetは重複した値を返し続けますが、これは可能ではありません。絶対URLの、好ましくは非重複リストにそれらをソート前に私も自分の結果の相対URLに変換する方法が必要、ボーナス質問としては重複を返しますか?

import bs4 
from bs4 import BeautifulSoup 
import requests 
import csv 

source_link = "https://www.census.gov/data/tables/2016/demo/popest/state-total.html" 
s = requests.get(source_link) 
usable_html = s.text 
setupsoup = BeautifulSoup(usable_html, 'lxml') 
silver = csv.writer(open("WGUCSV.csv", "r+")) 
silver.writerow(["URL"]) 

for set(gold) in setupsoup.findAll('a', href=True): 
    gold.add['href'] 
    print (gold) 
    silver.writerow(gold) 

だ:ここに私のコードです。私は本当にsetにそれらをすべて追加することは、それ自身の上に重複を除外すると思った。

+2

を試してみてくださいsetupsoup.findAllにおける(金)( 'A'、のhref =真): 'は有効なPythonでさえありません。 –

+1

あなたはset in gold(setupsoup.findAll( 'a'、href = True))を意味しましたか? ( 'a'、href = True):gold = set(gold)... ' – AChampion

+0

私のループは今では:金のセット(setupsoup.findAll(' a '、href = True) )): \t gold.add ['href'] これは何とか重複を返すものです。 – houseofbacon

答えて

0

あなたがセットに追加したい場合は、セットのために `

gold = set() 
for x in setupsoup.findAll('a', href=True): 
    gold.add(x) 

以上単に

gold = set(setupsout.findAll('a', href=True)) 
+0

私はセットアップが大好きでした。それはわかりやすいものでした。私はそれに渦を吹き込み、私のセットはまだ重複しています。 URLの最後の束をチェックアウト: https://www.census.gov/quality/ https://www.census.gov/foia/ https://www.census.gov/privacy/ https://www.commerce.gov/ https://www.census.gov/quality/ https://www.census.gov/foia/ ます。https://www.census .GOV /プライバシー/ https://www.commerce.gov/ https://www.census.gov/quality/ https://www.census.gov/foia/ https://www.census.gov/privacy/ – houseofbacon

+0

@houseofbaconこの回答は正しかったですが、hrefsのセットを作成する必要がありますタグそのものではありません。 –

+0

@houseofbacon実際にセットに追加されている文字列をさらに注意深く見る必要があります。 *何か*それらは異なっています。 'gold.add'はすでにセットに存在する文字列を追加しません。 – chepner

関連する問題