python3实战scrapy获取数据保存至MySQL数据库
来源:互联网 发布:seo英语编辑 编辑:程序博客网 时间:2024/06/08 04:03
python3使用scrapy获取数据然后保存至MySQL数据库,我上一篇写了如何爬取数据保存为csv文件,这一篇将会写如何将数据保存至数据库。
思路大都一样,我列一个思路:
1:获取腾讯招聘网。
2:筛选信息获取我们想要的。
3:将获取的信息按照规律保存至本地的txt文件。
4:读取txt文件的信息上传至MySQL数据库。
(友情提示:如果有朋友不怎么看得懂路径导入,可以看看我之前写的自定义模块路径导入方法的文章)
下面我们就按照这四步来实现目的。
(声明一下,除了数据库有关的代码有注释外,其他有不懂的可以看上一篇生成csv文件的文章的注释)
呈上代码(代码很简单,只需要简单的分析就行了):
# _*_ coding:utf-8 _*_import scrapy #下面这些都是基本的模块,慢慢分析就行from scrapy.http import Requestfrom time import sleepimport pymysql #python3连接数据库的模块pymysqlimport osimport syssys.path.append("D:\PYscrapy\get_Field") #一样的路径导入以便调用下面两个模块from get_Field.items import GetItemimport mainclass Tencentzhaopin(scrapy.Spider):name = "field"start_urls = ["http://hr.tencent.com/position.php?&start=0#a"]url = "http://hr.tencent.com/"count = 0filename = "data.txt"if os.path.exists(filename) == True:os.remove(filename)def database(self,path): #调用这个自定义函数来实现对数据库的操作connect = pymysql.connect(user = "root",password = "xxxxxxxx", #连接数据库,不会的可以看我之前写的连接数据库的文章port = 3306,host = "127.0.0.1",db = "MYSQL",charset = "utf8")con = connect.cursor() #获取游标con.execute("create database w_tencent") #创建数据库,!!!!这一条代码仅限第一次使用,有了数据库后就不用再使用了con.execute("use w_tencent") #使用数据库con.execute("drop table if exists t_zhaopin") #判断是否存在这个数据库表sql = '''create table t_zhaopin(name varchar(40),genre varchar(20),number bigint,place varchar(40),time varchar(20))'''con.execute(sql) #执行sql命令 创建t_zhaopin表来保存信息with open(path,"r") as f: #打开path本地文档while True:info = f.readline() #一行一行的读取文档信息if info:info = info.strip() #去掉换行符info = info.split(";") #以;来分割将信息变换为列表形式name = info[0]genre = info[1]number = info[2]place = info[3]time = info[4]con.execute("insert into t_zhaopin(name,genre,number,place,time)values(%s,%s,%s,%s,%s)",[name,genre,number,place,time])# 这一句就是将信息保存至t_zhaopin表中else:breakconnect.commit() #我们需要提交数据库,否则数据还是不能上传的con.close() #关闭游标connect.close() #关闭数据库print("Over!!!!!!!!!")def parse(self,response):self.count += 1name = response.xpath('//table//td[@class="l square"]//a//text()').extract()genre = response.xpath('//table//tr[not(@class="h")]//td[2][not(@align="center")]//text()').extract()number = response.xpath('//table//tr[not(@class="h")]//td[3][not(@align="center")]//text()').extract()place = response.xpath('//table//tr[not(@class="h")]//td[4][not(@align="center")]//text()').extract()time = response.xpath('//table//tr[not(@class="h")]//td[5][not(@align="center")]//text()').extract()with open(self.filename,"a") as f: #将我们获取到的信息保存到本地for i in range(len(genre)): #以某个属性的长度来循环f.write(name[i]+";") #我们将这些信息保存起来,并用;来分隔f.write(genre[i]+";")f.write(number[i]+";")f.write(place[i]+";")f.write(time[i]+"\n")new_url = response.xpath('//*[@id="next"]//@href').extract()new_url = self.url+new_url[0]print("Over")sleep(0.5)if self.count<=20:yield Request(url=new_url,callback=self.parse) #循环获取20页的内容就行了else:self.database(self.filename) #当超过20页时跳出返回,调用database函数存信息到数据库
以上是完整的代码,可以根据自己的实际情况来修改。
难的地方应该没有,但是对于一个初学者,细节还要是有很多的,我刚开始就是忘记了提交数据,找了很久的问题,郁闷。。。。。。
相互学习,可以用讨论,希望对大家有帮助
阅读全文
0 0
- python3实战scrapy获取数据保存至MySQL数据库
- scrapy爬虫框架将数据保存Mysql数据库中
- Scrapy网络爬虫实战[保存为Json文件及存储到mysql数据库]
- scrapy框架爬虫将数据保存到MySQL数据库(20170214)
- 保存数据到MySql数据库——我用scrapy写爬虫(二)
- Python3 大型网络爬虫实战 004 — scrapy 大型静态商城网站爬虫项目编写及数据写入数据库实战 — 实战:爬取淘宝
- 实战 使用scrapy 爬取代理 并保存到数据库
- 获取股票交易数据保存至mysql
- scrapy爬虫数据存入mysql数据库
- scrapy的保存数据
- python3 [爬虫入门实战]scrapy爬取盘多多五百万数据并存mongoDB
- python3 [爬虫入门实战]scrapy爬取盘多多五百万数据并存mongoDB
- python3实战scrapy生成csv文件
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- scrapy操作MySQL数据库
- python爬取拉勾网数据保存到mysql数据库
- Flex获取MySQL数据库数据
- Oracle之导入导出
- CxGrid 修改去除 no data to display 的两个方法
- Android中将图片从相册取出且获取到图片在手机中的地址
- java集合(3):LinkedList源码分析
- Java基础
- python3实战scrapy获取数据保存至MySQL数据库
- Linux_ActiveMQ_Zookeeper 安装笔记
- ADAS(1) 概述整理及自动驾驶实例
- 百度Ueditor在线编辑器的配置和图片上传
- Android动态设置主题(使用RxBus模式)
- 物料单位转换
- Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
- flask实践03-创建web表单
- qml继承