首页 > 数据库 >Scrapy爬虫框架 -- Mysql数据库存储数据

Scrapy爬虫框架 -- Mysql数据库存储数据

时间:2023-04-05 17:01:09浏览次数:38  
标签:item -- self spider 标题 对象 Scrapy Mysql div

一、新建一个项目

scrapy startproject myslqst

二、进入到项目目录并增加爬虫文件xiaohua

cd .\myslqst\
scrapy genspider xiaohua www.xxx.com

三、修改配置文件,并开启管道存储

ROBOTSTXT_OBEY = False
LOG_LEVEL = 'ERROR'
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
ITEM_PIPELINES = {
   "myslqst.pipelines.MyslqstPipeline": 300,
}

四、目标地址

start_urls = ["https://www.XXX.com/lizhi/"]

五、获取标题内容

def parse(self, response):
   标题列表= response.xpath('/html/body/div[2]/div/div[3]/div[1]/div/ul/li')
   for i in 标题列表:
       标题=i.xpath('./a/text()').extract_first()
       print(标题)

六、将字段添加到items

class MyslqstItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
   标题=scrapy.Field()

七、在爬虫文件导入MyslqstItem函数,将获取的字段对象交给管道处理

from ..items import MyslqstItem
字段对象=MyslqstItem()
字段对象['标题']=标题
yield 字段对象

八、在管道文件接收获取的字段对象

class MyslqstPipeline:
    def process_item(self, item, spider):
        标题=item['标题']
        print(标题)
        return item

九、在mysql中新建一个数据库aiyou和一个表lizhi

Scrapy爬虫框架 -- Mysql数据库存储数据_mysql

十、管道文件导入mysql库,并创建数据库连接

import pymysql
连接对象=None
游标对象=None
def open_spider(self,spider):
    self.连接对象=pymysql.Connect(host='192.168.0.111', port=3306, user='root', password='', db='aiyou', charset='utf8')
    self.游标对象=self.连接对象.cursor()

十一、执行sql语句,添加内容

sql语句='insert into lizhi(标题) values ("%s")'%标题
self.游标对象.execute(sql语句)
self.连接对象.commit()

十二、关闭响应数据

def close_spider(self,spider):
    self.游标对象.close()
    self.连接对象.close()

十三、储存效果

Scrapy爬虫框架 -- Mysql数据库存储数据_字段_02

标签:item,--,self,spider,标题,对象,Scrapy,Mysql,div
From: https://blog.51cto.com/u_15288375/6171207

相关文章

  • 【论文笔记 - InstructPix2Pix】InstructPix2Pix: Learning to Follow Image Editing
    InstructPix2Pix和Pix2Pix是两码事。Pix2Pix使用的是GAN,而InstructPix2Pix使用的是Diffusion。这个名字的由来可能出于两个方面,一方面InstructPix2Pix允许在image-translation的时候引入文本Instruction,另一方面InstructPix2Pix和Pix2Pix一样使用了成对的数据进行训练。鉴于目前图......
  • 实验三
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){intl......
  • 在Linux部署Redis主从和哨兵集群实现高可用
    前言本文主要讲述在Linux系统中配置和部署Redis主从集群和哨兵,实现高可用和自动故障迁移。准备工作参考Redis单机部署安装3个Redis服务作一主二从,本文准备了6380(主)、6381(从)和6382(从)。参考Redis单机部署安装3个Redis服务作哨兵集群,本文准备了26380......
  • L298N驱动板使用
                    引脚功能ENA,ENB使能端,输入PWM信号IN1,IN2电机A输入端,TTL逻辑电平信号OUT1,OUT2电机A输出端,与对应输入端同逻辑IN3,IN4电机B输入端,TTL逻辑电平信号OUT3,OUT4电机B输出端,与对应输入端同逻辑VCC(12V)+12V输......
  • 宠物app如何借助大数据分析提供更贴心的宠物养护
    宠物越来越成为了人们生活中不可或缺的一部分。越来越多的人开始养宠物,而宠物的养护也变得越来越重要。为了更好地照顾宠物,宠物app应运而生。但是,如何利用大数据分析来提供更贴心的宠物养护呢?一、宠物健康监测宠物健康监测是宠物app的一个重要功能。通过在app中记录宠物的体重......
  • ElementUI之el-date-picker禁选配置
    日期选择器之picker-options设置<el-date-pickerv-model="dateChoose"clearabletype="date"format="yyyyMMdd"value-format="yyyyMMdd":editable="false":picker-options="pickerOpti......
  • 在Linux部署Redis Cluster集群
    前言本文讲述在Linux系统部署RedisCluster实现数据分片的具体步骤。请参考Redis单机部署下载编译。RedisCluster是什么?RedisCluster是官方提供的一种用数据分片来实现横向扩容的解决方案,由一个或多个Redis服务组成一个无主集群。对Key使用哈希算法将数据分散......
  • jump server服务器安装anaconda和虚拟环境
      两次cd..然后suxingming(这个姓名就是自己的账号)然后输入cd~然后联网,输入bashlogin然后联网成功后,输入ls查看当前文件下有哪些文件   比如我要删除这个文件夹下的yes文件,输入pwd查看当前路径:/data00/mabaoguo(姓名)然后输入sudorm-rf/data00/maba......
  • Codeforces Round 640 (Div. 4) ABCDEFG
    https://codeforces.com/contest/1352不知道怎么的复制过来的代码容易歪,观看效果可能不大好。这场古早div4,大题极其友好,除了E卡空间卡到我爆炸,别的都体验感极好。A.SumofRoundNumbers#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpai......
  • java中如何灵活的比较日期大小
    java中如何灵活的比较日期时间大小 在比较两个日期时间的大小之前,我们先了解两个需要用到的类:Date和Calendar 1. Date类 java.util包提供了Date类来封装当前的日期和时间1publicstaticvoidmain(String[]args){2DatedNow=newDate();3......