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


相关推荐

  • 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

    机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾f作者:寒小阳&&龙心尘时间:2015年10月。出处:声明:版权所有,转载请注明出处,谢谢。手把手机器学习之逻辑回归应用——Kaggle泰坦尼克之灾1.引言先说一句,年末双十一什么的一来,真是非(mang)常(cheng)欢(gou)乐(le)!然后push自己抽出时间来写这篇blog的原因也非常简单:写完前两篇逻辑回归的介绍和各个角度理解之后,小伙伴们纷纷表示『好像很高级的样纸,

    2022年8月30日
    2
  • ubuntu 出现GPG Error的问题[通俗易懂]

    ubuntu 出现GPG Error的问题[通俗易懂]ubuntu系统sudoapt-getupdate错误提示:gpgerrorthepublickeyisnotavailableno_pubkey5523BF*********在我们系统上无法获取publickey,所以需要导入该publickey 解决办法:sudoapt-keyadv–keyserverkeys

    2022年10月13日
    3
  • android 退出APP

    android 退出APP在onCreate()中将Activity实例放到线性容器中,,,,退出时,一顿((Activity)list.gert(i)).finsh();存在的问题也是很明显的。。。保存了Activity的引用,是否会涉及,内存回收的问题。。。。(你得直到下面用的是强引用的方式哦。)packagecom.mystore.customer.act

    2022年7月17日
    22
  • socket编程原理「建议收藏」

    socket编程原理「建议收藏」socket编程原理1、问题的引入1)普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-c

    2022年7月2日
    20
  • 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)

    最简单的基于FFMPEG的视频编码器(YUV编码为H.264)本文介绍一个最简单的基于FFMPEG的视频编码器。该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据。编码器代码十分简单,但是每一行代码都很重要,适合好好研究一下。弄清楚了本代码也就基本弄清楚了FFMPEG的编码流程。目前我虽然已经调通了程序,但是还是有些地方没有完全搞明白,需要下一步继续探究然后补充内容。本程序使用最新版的类库(编译时间为2014.5.6),开发平台为VC2

    2022年7月16日
    18

发表回复

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

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