【发布时间】:2018-05-02 13:08:29
【问题描述】:
我已经抓取了一个网站的 html 链接,结果大约有 500 个链接。当我尝试将它们写入 csv 文件时,我没有得到只有基本页面的列表。
这是我的代码:
import requests
from bs4 import BeautifulSoup
import csv
page = requests.get('https://www.census.gov/programs-surveys/popest.html')
print(page.status_code)
soup = BeautifulSoup(page.text, 'html.parser')
link_set = set()
for link in soup.find_all('a'):
web_links = link.get("href")
print(web_links)
csvfile = open('code_python.csv', 'w+', newline='')
writer = csv.writer(csvfile)
writer.writerow(['Links'])
writer.writerow([web_links])
csvfile.close()
我的 csv 文件中只有两行。标题“链接”和 www.census.gov。我尝试通过在 csv 编写器区域添加另一个 for 循环来使其与众不同,但我得到了类似的结果。
for link in soup.find_all('a'):
web_links = link.get('href')
abs_url = join(page, web_links)
print(abs_url)
if abs_url and abs_url not in link_set:
writer.write(str(abs_url) + "\n")
link_set.add(abs_url)
似乎“web_links”定义应该是我将所有链接放入 csv 文件的位置,但没有骰子。我在哪里犯错了?
【问题讨论】:
标签: python python-3.x csv beautifulsoup