首页 > 解决方案 > CSV 不生成时

问题描述

它不会生成。

当它这样做时,文件是空白的。

    import csv
import requests 
from bs4 import BeautifulSoup as bs
for i in range(3):
        r = requests.get('https://www.nairaland.com/search/afonja/0/0/0/{}'.format(i))
        soup = bs(r.content, 'lxml')
        occurrences = len(soup.select('.highlight')) #if soup.select_one('.highlight') else 
    z=[occurrences]
    with open('z.csv', 'w') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow([z]) 
   

更新:有人已经解决了。那个用户很清楚。

标签: pythonbeautifulsoupexport-to-csv

解决方案


您需要将所有出现的值收集到一个列表中,而不是每次循环都覆盖该列表。循环后,将列表写入 CSV 文件。

并且由于z已经是一个列表,因此在将其写入文件时无需写入[z]

import csv
import requests 
from bs4 import BeautifulSoup as bs
z = []
for i in range(3):
    r = requests.get('https://www.nairaland.com/search/afonja/0/0/0/{}'.format(i))
    soup = bs(r.content, 'lxml')
    occurrences = len(soup.select('.highlight'))
    z.append(occurrences)
with open('z.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(z) 

推荐阅读