【发布时间】:2018-10-18 19:22:45
【问题描述】:
我已经在网站上进行了一次网络抓取以进行练习,我正在尝试将数据放入可以导出到 csv 的 pandas 数据帧中,当我到达某个点时,TypeError: __init__() got multiple values for argument 'fieldnames' 会出现。我想使用 csv 模块编写文件。有人可以解释错误是如何发生的以及如何解决它吗?我的代码如下:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import csv
my_url = 'https://www.allagents.co.uk/find-agent/london/'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, 'html.parser')
containers = page_soup.findAll('div', {'class':'itemlabel3'})
filename = "webscrape.csv"
records = []
for container in containers:
comp_name = container.find('div', {'class':'labelleft2 col-md-10'}).div.h4.a.text
address=container.find('div', {'class':'labelleft2 col-md-10'}).div.p.text.replace('\n','')
tel = container.find('div', {'class':'labelleft2 col-md-10'}).div.find('p', {'style':'clear: both; margin-bottom: 15px;'}).strong.text
records.append({'company': comp_name, 'address': address, 'telephone': tel})
writer = csv.DictWriter(filename, "w", fieldnames=['company', 'address', 'telephone'])
writer.writeheader()
for r in records:
writer.writerow(r)
出现错误:
writer = csv.DictWriter(filename, "w", fieldnames=['company', 'address', 'telephone'])
在此先感谢,如果有任何帮助,我们将不胜感激。
【问题讨论】:
-
哪行代码导致错误?
-
什么版本的 Python?
-
@jwm:只有 Python 3 有
urllib.request作为模块。 -
@HD:请edit您的问题添加缺少的详细信息。
-
版本:Python 3.6.5
标签: python csv web-scraping