scrapy 的常用代码
来源:互联网 发布:天才帽子淘宝网 编辑:程序博客网 时间:2024/06/18 04:45
1.scrapy 异步写入数据库
先在settings里面配置数据库
MYSQL_HOST = '127.0.0.1'MYSQL_PORT = 3306MYSQL_USER = 'root'MYSQL_PASSWD = '123456'MYSQL_CHARSET = 'utf8'MYSQL_DBNAME = '51job'然后在pipiline中创建一个类
# 异步写入数据from twisted.enterprise import adbapifrom MySQLdb import cursorsclass MysqlTwistedPipeline(object): @classmethod def from_settings(cls,settings): # 准备好连接数据库需要的参数 db_params = dict( host = settings["MYSQL_HOST"], port = settings["MYSQL_PORT"], user = settings["MYSQL_USER"], passwd = settings["MYSQL_PASSWD"], charset = settings["MYSQL_CHARSET"], db = settings["MYSQL_DBNAME"], use_unicode = True, # 指定游标类型 cursorclass=cursors.DictCursor ) # 创建连接池 # 1.要连接的名称 2.连接需要的参数 db_pool = adbapi.ConnectionPool('MySQLdb',**db_params) # 返回当前类的对象,并且把db_pool赋值给该类的对象 def __init__(self, db_pool): # 赋值 self.db_pool = db_pool # 处理item函数 def process_item(self, item, spider): # 把要处理的事件进行异步处理 # 1.要处理的事件函数 # 2.事件函数需要的参数 query = self.db_pool.runInteraction(self.do_insert, item) # 执行sql出现错误信息 query.addErrback(self.handle_error, item, spider) # 错误的原因 def handle_error(self, failure, item, spider): print failure # 处理插入数据库的操作 # cursor该函数是连接数据库的函数,并且放在异步去执行,cursor执行sql语句 def do_insert(self, cursor, item): # 1.准备sql语句 sql = '' # 2.用cursor游标执行sql cursor.execute(sql)在setting中 item pipiline中取消注释放入配置信息
'JobSpider.pipelines.MysqlTwistedPipeline':2
2.scrapy中设置随机请求头
在middlewears中设置
# 设置随机请求头from fake_useragent import UserAgentclass RandomUAMiddleware(object): def __init__(self,crawler): super(RandomUAMiddleware, self).__init__() self.crawler = crawler self.ua = UserAgent() @classmethod def from_crawler(cls,crawler): return cls(crawler) # 处理请求函数 def process_request(self,request,spider): # 随机产生请求头 request.headers.setdefault('User-Agent',self.ua.random)然后setting中把downloader middlewares取消注释
'JobSpider.middlewares.RandomUAMiddleware': 1,
阅读全文
0 0
- scrapy 的常用代码
- scrapy常用的指令总结
- Scrapy源码分析-常用的爬虫类-CrawlSpider(三)
- Scrapy spider代码片段
- 用python3写的scrapy代码,如何部署到scrapyd
- scrapy爬虫(3)之连接数据库之前的代码
- 【scrapy】scrapy的环境依赖
- python scrapy xpath常用语法
- 常用的代码
- PHP常用的代码
- 常用的IO代码
- 常用的JS代码
- 常用的JS代码
- 常用的攻击代码
- 一些常用的代码
- 常用的JS代码
- 常用的代码片断
- 常用的代码
- Python列表,集合,字典
- 学习javaSE 类和对象,方法,构造方法,成员变量与局部变量
- 十分钟学会Charles抓包(iOS的http/https请求)
- 【Web前端学习笔记】Javascript_03_常用对象:String,Number,Math,Date,网页时针
- 如何解决maven项目在eclipse的library中没有Maven Dependencies
- scrapy 的常用代码
- js定位,jq定位,jquery定位,clientX,clientY,offsetX,offsetY,screenX,screenY
- AIO 同步读取大量普通字节
- ue4音效、动画结合实例
- Web程序员这5个debug技巧必须掌握
- Volatile相关知识
- redis-cli命令总结
- 验证码
- C#对图片进行缩放变换