Python 3删除了带有额外字符rstrip的重复weblink

时间:2017-08-14 22:07:17

标签: python python-3.x web-scraping

使用Python 3.我试图从网站上提取所有独特的链接,似乎有代码工作,除了一些最后有/的链接。

例如:我的计划将包括http://www.google.com& http://www.google.com/

我想确保我的程序删除最后一个字符,以确保不会返回重复项。我研究过rstrip(),但似乎无法让它发挥作用。这是我的代码:

import bs4 as bs
import urllib.request
import urllib.parse


source = urllib.request.urlopen('https://www.census.gov/data/tables/2016/demo/popest/state-total.html').read()
soup = bs.BeautifulSoup(source,'lxml')

filename = "UniqueWebLinks.csv"
f = open(filename, "w")
headers = "WebLinks\n"
f.write(headers)

all_links = soup.find_all('a')

url_set = set()

for link in all_links:
    web_links = link.get("href")
    ab_url = urllib.parse.urljoin('https://www.census.gov/data/tables/2016/demo/popest/state-total.html', web_links)
    print (ab_url)
    if ab_url and ab_url not in url_set:
        f.write(str(ab_url) + "\n")
        url_set.add(ab_url)

1 个答案:

答案 0 :(得分:1)

我保持简单,并明确说明您如何清理网址。例如,如果它是斜杠(rwindows)或哈希值(/),则删除最后一个字符(如果URL以哈希结尾,则它与它不相同以哈希结尾)。浏览数据后,我还会删除所有空白网址,因为这可能不是您正在寻找的内容。

#