我从人口普查网站上删除了一个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
会过滤掉它自己的重复项。
答案 0 :(得分:0)
如果要添加到集合,请尝试
gold = set()
for x in setupsoup.findAll('a', href=True):
gold.add(x)
或更简单
gold = set(setupsout.findAll('a', href=True))