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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MacBook Pro最全快捷键指南——高效型选手必备

    MacBook Pro最全快捷键指南——高效型选手必备剪切、拷贝、粘贴和其他常用快捷键Command-X:剪切所选项并拷贝到剪贴板。Command-C:将所选项拷贝到剪贴板。Command-V:将剪贴板的内容粘贴到当前文稿或应用中。Command-Z:撤销前一个命令。随后您可以按Command-Shift-Z来重做,从而反向执行撤销命令。Command-A:全选各项。Command-F:查找文稿中的项目或打开“查找”窗…

    2022年5月25日
  • 数组 – 稀疏数组

    一,稀疏数组1.定义稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组形如:00000000000001000000000000200000000000000…

    2022年4月5日
  • idea 激活码2022_通用破解码

    idea 激活码2022_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • 软件测试笔试面试题目完全汇总

    软件测试笔试面试题目完全汇总1、软件测试的流程2、web测试和APP测试的区别仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢?由于载体不一样,所以系统测试和一些细节可能会不一样。那么我们就要先来了解,web和app的区别。web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。首先从系统架构来看的话,web测试…

    2022年5月8日
  • Vim详细配置_mini5配置

    Vim详细配置_mini5配置Vim配置要点一、在终端中开打.vimrc文档二、在.vimrc文档中添加配置内容1.常用设置2.自动备份3.自动补全三、保存退出四、代码高亮不显示一、在终端中开打.vimrc文档vi~/.vimrc二、在.vimrc文档中添加配置内容1.常用设置setnumber “显示行号syntaxon “语法高亮度显示setautoindent “vim使用自动对起,也就是把当前行的对起格式应用到下一行setsmartindent “依据上面的对起格式,智能的

    2022年9月29日
  • win10显卡驱动怎么装_win10系统显卡驱动安装失败怎么办

    win10显卡驱动怎么装_win10系统显卡驱动安装失败怎么办大家好,今天分享一篇来自小白系统官网(xiaobaixitong.com)的图文教程。我们日常在对电脑的使用过程中,经常都会遇到这样或那样的问题。比如说win10系统显卡驱动安装失败该怎么办呢?别着急,还有小编在呢?接下来小编就来告诉大家win10电脑系统显卡驱动安装失败怎么解决。详细教你win10系统显卡驱动安装失败怎么办:方法一,删除之前的显卡驱动文件重新安装1,首先,右键点击“此电脑”,菜单…

    2022年5月26日

发表回复

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

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