база данных не создается в sqlite3 с использованием конвейера в python scrapy - PullRequest
1 голос
/ 24 февраля 2020

может кто-нибудь помочь мне, весь мой код работает, но когда я открываю файл mytask.db, ничего не вставляется / не обновляется в файле базы данных, скажите, пожалуйста, причину, по которой база данных не обновляется, я открываю базу данных в https://sqliteonline.com/, помогите пожалуйста

import sqlite3

class TaskPipeline(object):

    def __init__(self):
        self.create_connection()
        self.create_table()

    def create_connection(self):
        self.conn = sqlite3.connect("mytask.db")
        self.curr = self.conn.cursor()

    def create_table(self):
        self.curr.execute("""DROP TABLE IF EXISTS cr_tb""")
        self.curr.execute("""create table tk_tb(
                                             title text,
                                             tag text
                                             )""")

    def process_item(self, item, spider):
        self.store_db(item)
        return item

    def store_db(self, item):
        self.curr.execute("""insert into tk_tb values (?,?)""", (
            item['title'][0],
            item['tag'][0]
        ))
        self.conn.commit()

1 Ответ

0 голосов
/ 24 февраля 2020

это items.py

import scrapy



class TaskItem(scrapy.Item):

        title = scrapy.Field()
        link = scrapy.Field()

это основной файл task.py

import scrapy
from ..items import TaskItem


class taskSpider(scrapy.Spider):


    name = 'task'


    start_urls = ['https://dmoz-odp.org/Sports/Events/']


    def parse(self, response):
        items = TaskItem()
        div_items = '.alt-sites a'

        for i in response.css(div_items):
            title = i.css('::text').extract_first()
            link = i.css('::attr(href)').extract_first()

            items['title'] = title
            items['link'] = link

            yield items
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...