- 生成一个scrapy目录
(1)scrapy startproject 目录名 在当前目录创建scrapy项目 (2)cd 目录名 移动到创建的目录下 (3)scrapy genspider demo 网站域名 生成一个demo.py文件,产生spiders爬虫 (4)scrapy crawl demo 执行这个demo (5)保存数据 scrapy crawl demo -o test.json 将数据保存在test.json文件里 scrapy crawl demo -o test.csv 将数据保存在test.csv文件里 保存到数据库 pipelines.py里的item就是传过来的数据 插入dict(item)数据 记得在settings.py中开启 ITEM_PIPELINES
2.yield关键字
def gen(n) for i in range(n): yield i**2 >> 结果输出的是list[0,1,4,9...] 作用:节约资源,将数据yield到pipelines里,进行数据解析
3.伪装
(1)设置代理ip 1.进入middlewares.py文件 2.写入代码类似: """ TODO import base64 # 代理服务器 class my_proxy(object): def process_request(self, request, spider): request.meta['proxy'] = 'http://http-cla.abuyun.com:9030' proxy_name_pass = b'H211EATS905745KC:F8FFBC929EB7D5A7' encode_pass_code = base64.b64encode(proxy_name_pass) request.headers['Proxy-Authrization'] = 'Basic '+ encode_pass_code.decode() """ 3.修改settings.py里的 DOWNLOADER_MIDDLEWARES值 """ DOWNLOADER_MIDDLEWARES = { 'douban.middlewares.my_proxy': 543, } """ (2)随机设置http头的User_ager 1.进入middlewares.py文件 2.写入代码类似: """ TODO import random class my_useragent(object): def process_request(self,request,spider): agents = [xxxx] # 随机选取agents agent = random.choice(agents) request.headers['User_Agent'] = agent """ 3.修改settings.py里的 DOWNLOADER_MIDDLEWARES值 """ DOWNLOADER_MIDDLEWARES = { 'douban.middlewares.my_useragent': 544, } """
4.extract()
将xpath对象转换成unicode字符串 .encode("utf-8") 转成utf-8编码