设置返回重复?

时间:2017-08-20 21:48:10

标签: python python-3.x csv

我从人口普查网站上删除了一个URL列表,而不是将它们放在一个集合中,以确保我不会重复,然后将非重复URL的列表导出到.csv文件中。但是,我的set继续返回重复值,这是不可能的。这是我的代码:

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)

作为一个额外的问题,我还需要一种方法将我生成的相对URL转换为绝对URL,最好是之前将它们排序为非重复列表。我真的以为将它们全部添加到set会过滤掉它自己的重复项。

1 个答案:

答案 0 :(得分:0)

如果要添加到集合,请尝试

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

或更简单

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