[英]database not creating in sqlite3 using pipeline in python scrapy
有人可以幫助我我的所有代碼都在工作,但是當我打開 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()
這是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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.