未使用python正确检索csv文件中的信息

2024-10-01 09:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从这个site中刮取一些内容。在从csv文件中的站点提取后,像会议头一样写作时,名字没有正确地出现,例如,如果单词是microsoft,它将作为osoft出现,但其余所有单词都正确地出现

这是我的密码:

import csv
import requests
from bs4 import BeautifulSoup

with open('random.csv', 'w') as csvfile:
    a = csv.writer(csvfile)
    a.writerow(["conferenceHead"])

    url = given above      
    r = requests.get(url)
    soup = BeautifulSoup(r.content)
    links = soup.find_all("div")

    r_data = soup.find_all("div",{"class":"conferenceHead"})
    for item in r_data:
        conferenceHead = item.contents[1].text


        with open('random.csv','a') as csvfile:
            a = csv.writer(csvfile)
            data = [conferenceHead]
        a.writerow(data)

Tags: csvcsvfileimportdataaswithrandomopen
1条回答
网友
1楼 · 发布于 2024-10-01 09:31:28

你的代码有三个问题

  • with open()语句(在同一文件上)
  • 在append模式中的第二个open是在一个循环中,这使得情况更糟
  • 最后一个writerow超出范围,csvfile已关闭

这可能会导致缓冲区未写入文件,并截断正在保存的字符串

在修复这个错误(删除with open('random.csv','a') as csvfile并修复缩进)之后,代码运行并且输出不会被修剪

import csv
import requests
from bs4 import BeautifulSoup
with open('random.csv', 'w') as csvfile:
    a = csv.writer(csvfile)
    a.writerow(["conferenceHead"])

    url = "http://www.allconferences.com/search/index"\
          "/Category__parent_id:1/Venue__country:United%20States"\
          "/Conference__start_date__from:01-01-2010/sort:start_date"\
          "/direction:asc/showLastConference:1/page:7/"
    r = requests.get(url)
    soup = BeautifulSoup(r.content)
    links = soup.find_all("div")

    r_data = soup.find_all("div",{"class":"conferenceHead"})

    for item in r_data:
        conferenceHead = item.contents[1].text
        data = [conferenceHead]
        a.writerow(data)

相关问题 更多 >