невозможно сохранить данные сканирования в другой таблице в базе данных с помощью scrapy-anaconda - PullRequest
0 голосов
/ 19 сентября 2019

Я попытался создать программу для сканирования веб-сайта с использованием scrapy для базы данных mysql.если я храню за одним столом, это также работает, но если я храню за несколькими столами, это не работает.

def parse(self, response):
    for menu in response.css('ul.product-gallery li'):
        name = menu.css("article div.product-description h3 a::text").get()
        harga = int((menu.css("article div.product-description div.product-price span.amount::text").get()).replace('.', ''))
        seller = menu.css("article div.product-description div.product-seller h5 a::text").get()
        alamat = menu.css("article div.product-description div.product-seller div.user-city span::text").get()
        sql = "INSERT INTO menu (name, harga, seller, alamat) VALUES (%s, %s, %s, %s)"
        val = (name, harga, seller, alamat)
        mycursor.execute(sql, val)
        mydb.commit()
        deskripsi_link = menu.css('article div.product-description h3 a::attr(href)').get()
        if deskripsi_link is not None:
            yield response.follow(deskripsi_link, callback=self.parse_desc)

def parse_desc(self, response):
    def response_baru(query):
        return response.css(query)

    name = response_baru("h1.qa-pd-name::text").get()
    kondisi = response_baru("span.c-label::text").get()
    deskripsi = response_baru("div.js-collapsible-product-detail p::text").getall()
    sql = "INSERT INTO deskripsi (name, kondisi, deskripsi) VALUES (%s, %s, %s)"
    val = (name, kondisi, deskripsi)
    mycursor.execute(sql, val)
    mydb.commit()

вот ошибки:

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): Файл "/ home / .. ", строка 417, в _process_params res = [to_mysql (i) для i в res] Файл" / home / .. ", строка 417, в res = [to_mysql (i) для i в res] файл«/ home / ..», строка 182, в to_mysql «MySQL type» .format (type_name)) TypeError: Python 'tuple' не может быть преобразован в тип MySQL

...