1、需求分析:
在我们使用单一ip抓取网页的时候,经常会碰到IP被封的情况;那么我们就要获取一批代理IP进行网页抓取;目前找到一个叫”西刺”的网站,可以提供免费代理IP,领导要求对上面的IP进行爬取,以供日后使用;
2、分析网站结构
首页
各分类IP列表连接
IP列表(多页)
具体IP获取
3、存储方式分析
可选方式:
1,文本文件;
2,csv文件;
3,json文件;
4,jsonlines文件;
5,数据库
6,云存储
4、代码构思
1,在spider中编写页面的抽取规则,并返回结果或者request;
2,在item pipelines中对所获得结果进行处理,即存储;
3,在settings.py中启用item pipelines,并设置其他参数,比如:
数据库连接参数;
日志文件名称;
写代码的步骤
1、创建工程
命令:
scrapy startproject collectips
2、编写Item
# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class CollectipsItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() IP = scrapy.Field() PORT = scrapy.Field() POSITION = scrapy.Field() TYPE = scrapy.Field() SPEED = scrapy.Field() LAST_CHECK_TIME = scrapy.Field()
3、编写spider