Scrapy 中间件模板

随机UA

from fake_useragent import UserAgent   ##随机UA头
class RandomUserAgentMiddleware(object):
    def process_request(self, request, spider):
        ua = UserAgent()
        request.headers['User-Agent'] = ua.random
        #输出随机UA
        # print(ua.random) -->添加自定义的UA,给request的headers赋值即可

代理

class ProxyMiddleware(object):
    def process_request(self,request,spider):
        request.meta["proxy"]="http://xxxx:8080"

#-->添加代理,需要在request的meta信息中添加proxy字段 
#-->代理的形式为:协议+ip地址+端口

mysql写入

import pymysql
class mysqlPipeline(object):
    ##链接数据库
    def open_spider(self, spider):
        self.conn = pymysql.connect(host='127.0.0.1',user='scrapy',passwd='scrapy',db='sqlname')  #连接数据库
    def process_item(self, item, spider):
        #添加数据到sqlname表中
        self.conn.query(
            "insert suningbook(一级分类,二级分类,三级分类,图片名称,图片链接,图书价格,作者,出版社,出版时间)"  #需要插入的字段
            "values('{}','{}','{}','{}','{}','{}','{}','{}','{}')".format(
                item['一级分类'],item['二级分类'],item['三级分类'],item['图片名称'],item['图片链接'],item['图书价格'],item['作者'],item['出版社'],item['出版时间']  #爬取项目中定义的字段
            ))
        self.conn.commit()#执行添加
    def close_spider(self, spider):
        self.conn.close()  #关闭连接
        yield item

cookies自动分dict

cookies = ""
cookies={i.split("=")[0]:i.split("=")[1] for i in cookies.split(";")}
yield scrapy.Request(
    self.start_urls[0],
    callback=self.parse,
    cookies=cookies
)