Недопустимый атрибут encoding в функции open() (для файлов)

Я начал изучать программирование, и мой первый язык - Python. В качестве практического упражнения я хотел создать Crawler для веб-сайта.

Для этого я создал класс для просканированных элементов (в этом случае - информация о задании). И еще один для выполнения функции скручивания. Проблема в том, что когда я хочу записать просканированные данные в CSV, я получаю ошибку кодирования. Но когда я попытался определить это, я получил следующую ошибку:

Blockquote TypeError: 'encoding' является недопустимым аргументом ключевого слова для этой функции

Любые предложения, почему атрибут отсутствует? Я очень благодарен за любую помощь. Найдите код ниже:

# encoding=utf-8

import requests
from bs4 import BeautifulSoup
import time
import csv

starturl = "https://www.gulp.de/gulp2/projekte/suche?0"

class Job():
    def __init__(self, veroeffentlicht, startdatum, ort, titel, link, beschreibung):
        self.veroeffentlicht = veroeffentlicht
        self.startdatum = startdatum
        self.ort = ort
        self.titel = titel
        self.link = link
        self.beschreibung = beschreibung

class Crawler():
    def crawl(self):
        jobs = []
        url = starturl
        counter = 0
        r = requests.get(url)
        doc = BeautifulSoup(r.text, "html.parser")
        jobs_gesamt = "HIER NOCH EINFÜLLEN doc.select()..."

        while counter < 3:  # len(str(doc.select(".next")[1])) > 100:    
            time.sleep(2)
            r2 = requests.get(url)
            doc = BeautifulSoup(r2.text, "html.parser")
            for li in doc.select(".searchresult li"):
                veroeffentlicht = li.select_one(".date-listed").text
                startdatum = li.select_one(".date-start").text
                ort = li.select_one(".location").text
                titel = li.select_one(".title").text
                link = li.select_one(".title").attrs["href"]
                beschreibung = li.select(".row .medium-9 .row")[1].select_one("p").text

                job = Job(veroeffentlicht, startdatum, ort, titel, link, beschreibung)
                jobs.append(job)

            print("{0} von {1} Jobs in list...".format(len(jobs), jobs_gesamt))
            counter += 1
            url = "https://www.gulp.de/gulp2/projekte/suche?0-{0}.ILinkListener-projectSearch-resultListContainer-outerContainer-pagingNavigatorBottom-next".format(
                counter)  # + str(doc.select(".next")[1].attrs["href"])
            print(url)
        print("!!!Done!!!")
        print(len(str(doc.select(".next")[1])))
        print("Gescannte URL's: {0}".format(counter))

with open('./export.csv', 'w', encoding='utf-8') as exportfile:
            writer = csv.writer(exportfile, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
            for job in jobs:
                writer.writerow([job.ort, job.titel, job.link, job.beschreibung, job.startdatum, job.veroeffentlicht])


crawler = Crawler()
crawler.crawl()

0 ответов

Другие вопросы по тегам