首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

python--爬虫--获取和解析存储网页内容--以薄荷网为例(14)

python--爬虫--获取和解析存储网页内容--以薄荷网为例(14)

并行处理–多线程抓取

单线程抓取和解析都会比较慢,可以使用多线程进行处理。
python的多线程使用参考
python积累–多线程的使用实例
存储
写入excel

import xlwt

class ToutiaoPipeline(object):
    def __init__(self):
        self.book=xlwt.Workbook()
        self.sheet=self.book.add_sheet('sheet', cell_overwrite_ok=True)
        head=[u'名字', u'点赞', u'回复', u'评论']
        i=0
        for h in head:
            self.sheet.write(0, i, h)
            i += 1

    def process_item(self,item,spider):
        self.sheet.write(item['Num'],0,item['name'])
        self.sheet.write(item['Num'],1,item['like'])
        self.sheet.write(item['Num'],2,item['reply'])
        self.sheet.write(item['Num'],3,item['text'])
        self.book.save('TouTiao.xls')



存入mongodb

参考 python使用pymongo读写mongodb
存入mysql

pandas表格导入MySQL数据库
pandas提供了将数据便捷存入关系型数据库的方法,在新版的pandas中,主要是已sqlalchemy方式与数据建立连接,支持MySQL、Postgresql、Oracle、MS SQLServer、SQLite等主流数据库。本例以MySQL数据库为代表,展示将获取到的股票数据存入数据库的方法,其他类型数据库请参考sqlalchemy官网文档的create_engine部分。

常用参数说明:

name:表名,pandas会自动创建表结构
con:数据库连接,最好是用sqlalchemy创建engine的方式来替代con
flavor:数据库类型 {‘sqlite’, ‘mysql’}, 默认‘sqlite’,如果是engine此项可忽略
schema:指定数据库的schema,默认即可
if_exists:如果表名已存在的处理方式 {‘fail’, ‘replace’, ‘append’},默认‘fail’
index:将pandas的Index作为一列存入数据库,默认是True
index_label:Index的列名
chunksize:分批存入数据库,默认是None,即一次性全部写人数据库
dtype:设定columns在数据库里的数据类型,默认是None



调用方法:

from sqlalchemy import create_engine
import tushare as ts

df = ts.get_tick_data('600848', date='2014-12-22')
engine = create_engine('mysql://user:passwd@127.0.0.1/db_name?charset=utf8')

#存入数据库
df.to_sql('tick_data',engine)

#追加数据到现有表
#df.to_sql('tick_data',engine,if_exists='append')
返回列表