scrapy爬虫储存到mysql_Scrapy爬虫案例 | 数据存储至MySQL

scrapy爬虫储存到mysql_Scrapy爬虫案例 | 数据存储至MySQL首先,MySQL创建好数据库和表image然后编写各个模块item.pyimportscrapyclassJianliItem(scrapy.Item):name=scrapy.Field()url=scrapy.Field()pipeline.pyimportpymysql#导入数据库的类classJianliPipelin…

大家好,又见面了,我是你们的朋友全栈君。

首先,MySQL创建好数据库和表

029ff47818eb

image

然后编写各个模块

item.py

import scrapy

class JianliItem(scrapy.Item):

name = scrapy.Field()

url = scrapy.Field()

pipeline.py

import pymysql #导入数据库的类

class JianliPipeline(object):

conn = None

cursor = None

def open_spider(self,spider):

print(‘开始爬虫’)

self.conn = pymysql.Connect(host=’127.0.0.1′,port=3306,user=’root’,password=”,db=’jianli’) #链接数据库

def process_item(self, item, spider): #编写向数据库中存储数据的相关代码

self.cursor = self.conn.cursor() #1.链接数据库

sql = ‘insert into jl values(“%s”,”%s”)’%(item[‘name’],item[‘url’]) #2.执行sql语句

try: #执行事务

self.cursor.execute(sql)

self.conn.commit()

except Exception as e:

print(e)

self.conn.rollback()

return item

def close_spider(self,spider):

print(‘爬虫结束’)

self.cursor.close()

self.conn.close()

spider

# -*- coding: utf-8 -*-

import scrapy

import re

from lxml import etree

from jianli.items import JianliItem

class FxhSpider(scrapy.Spider):

name = ‘jl’

# allowed_domains = [‘feixiaohao.com’]

start_urls = [‘http://sc.chinaz.com/jianli/free_{}.html’.format(i) for i in range(3)]

def parse(self,response):

tree = etree.HTML(response.text)

a_list = tree.xpath(‘//div[@id=”container”]/div/a’)

for a in a_list:

item = JianliItem (

name=a.xpath(“./img/@alt”)[0],

url=a.xpath(“./@href”)[0]

)

yield item

settings.py

#USER_AGENT

headers = {

“user-agent”:”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36″

}

# Obey robots.txt rules

ROBOTSTXT_OBEY = False

# Configure item pipelines

# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html

ITEM_PIPELINES = {

‘jianli.pipelines.JianliPipeline’: 300,

}

查看存储情况

029ff47818eb

image

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153138.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基本的Dos命令

    基本的Dos命令

    2021年10月6日
    44
  • hive中操作hdfs命令

    hive中操作hdfs命令版本:Hadoop2.7.4–查看dfs帮助信息[root@hadp-mastersbin]#dfsUsage:dfs[genericoptions][-appendToFile…][-cat[-ignoreCrc]…][-checksum…][-chgrp[-R]GROUPPATH…][-chmod[-R]<MODE[,MODE]…|OCTALMODE>PATH…][-chown[-R][OWNER][:[GROUP]]PA

    2022年9月27日
    3
  • 计算流体力学基础与网格概述(与书同行)——ANSYS ICEM CFD网格划分从入门到精通——丁源「建议收藏」

    计算流体力学基础与网格概述(与书同行)——ANSYS ICEM CFD网格划分从入门到精通——丁源「建议收藏」一、计算流体力学基础:1、 建立物理模型,将其抽象为数学、力学模型后,要分析几何体的空间影响区域;2、 建立整个几个形体与其空间影响区域(计算区域的CAD模型),将整个计算区域进行空间网格划分。3、 加入求解所需要的初始条件;4、 选择适当的算法,设置具体的控制求解过程和精度的一些条件,对所研究的问题进行分析,保存数据文件结果;5、 选择合适的后处理器(postprocessor)读取计算结果文件,分析并且显示出来。数值模拟方法:1、 有限差分法;2、 有限元法;3、 有限体积法;子域法

    2022年5月26日
    50
  • 网闸上数据库同步

    网闸上数据库同步最近要实施数据库架构调整。1.数据库服务器要加台内网服务器,使用网闸隔离。中间有台文件中转服务器。要求实现数据库复制到内网服务器上供应用使用。考虑的方案有如下: 1.使用中转服务器作复制桥接。先从外网服务器同步到中转服务器,再同步到内网服务器。 2.貌似有的网闸产品支持数据库同步,如果本次上的产品支持,就不用什么桥接了,直接复制到内网服务器就OK了。  等待方案确认中

    2022年9月1日
    4
  • win10下pytorch-gpu安装以及CUDA详细安装过程

    win10下pytorch-gpu安装以及CUDA详细安装过程win10下pytorch-gpu安装以及CUDA详细安装过程1.Cuda的下载安装及配置首先我们要确定本机是否有独立显卡。在计算机-管理-设备管理器-显示适配器中,查看是否有独立显卡。可以看到本机有一个集成显卡和独立显卡NVIDIAGetForceGTX1050。接下来,测试本机独立显…

    2022年9月23日
    2
  • Swoole WebSocket开启SSL支持 使用wss连接「建议收藏」

    Swoole WebSocket开启SSL支持 使用wss连接

    2022年2月12日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号