如何通过beautifulsoup4将抓取的数据上传到csv文件

问题描述

import requests
from bs4 import BeautifulSoup
import csv

#import question from stack overflow
htp='https://stackoverflow.com/questions?tab=newest&page=2'

response=requests.get(htp).text
soup=Beautiful Soup(response,"HTML.parser")
#class question-summary...

question=soup.select("question-summary")

#open csv file....

with open("new.csv","w") as file:
write=csv.writer(file)
write.writerow(["heading","summary","Votes"])

for ques in question:
    print(ques.select_one("question-hyperlink").getText())
    print(ques.select_one("excerpt").getText())
    print(ques.select_one("Vote-count-post").getText())
    
    #problem area
    write.writerow...???( what to do)


    

解决方法

要将数据保存为CSV,您可以使用以下示例:

import csv
import requests
from bs4 import BeautifulSoup

#import question from stack overflow
htp='https://stackoverflow.com/questions?tab=newest&page=2'

response=requests.get(htp).text
soup=BeautifulSoup(response,"html.parser")

#class question-summary...
question=soup.select(".question-summary")

#open csv file....
with open("new.csv","w") as file:
    write=csv.writer(file)
    write.writerow(["heading","summary","votes"])

    for ques in question:
        heading = ques.select_one(".question-hyperlink").getText()
        summary = ques.select_one(".excerpt").getText()
        votes = ques.select_one(".vote-count-post").getText()

        print(heading)
        print(summary)
        print(votes)
        
        write.writerow([heading,summary,votes])

创建new.csv(来自LibreOffice的屏幕截图):

enter image description here