随机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 )