目标:从models
中所有行内的锚标记中提取文本并将其放入csv中。
我正在尝试这个代码:
with open('Sprint_data.csv', 'ab') as csvfile:
spamwriter = csv.writer(csvfile)
models = soup.find_all('li' , {"class" : "phoneListing"})
for model in models:
model_name = unicode(u' '.join(model.a.stripped_strings)).encode('utf8').strip()
spamwriter.writerow(unicode(u' '.join(model.a.stripped_strings)).encode('utf8').strip())
除了csv中的每个单元格只包含一个字符外,它工作正常。
像这样:
| S | A | M | S | U | N | G |
而不是:
|SAMSUNG|
我当然少了点东西。但是什么?
.writerow()
需要一个序列(''
,()
,[]
),并将每个索引按顺序放置在行的自己的列中。如果所需的字符串不是序列中的项,writerow()
将遍历字符串中的每个字母,并在单独的单元格中将每个字母写入CSV。之后
import csv
如果这是您的列表:
上述脚本将生成以下CSV: 脱衣舞娘.csv
如果希望每个名称都在自己的单元格中,解决方法是简单地将字符串(
item
)按顺序放置。这里我用方括号[]
。以下内容:使用
.writerow([item])
的脚本生成所需的结果: 剥离器2.csv只需用一个列表符号(即[])将其包围即可
writerow
接受序列。你给它一个字符串,所以它把它当作一个序列,字符串就像一个字符序列。你还要这排别的什么?没有什么?如果是,请将其列为一个项目的列表:
(顺便说一下,
unicode()
调用是完全不必要的,因为您已经用unicode分隔符连接了。)相关问题 更多 >
编程相关推荐