1、items.py 像字典一样
定义所爬取信息的名字,相当于规定好要提取信息的Key键
2.spiders包中 用来请求和解析
默认起始爬取链接、request请求、def parse()解析函数
(可以重定义request,修改url、请求头、cookies)
返回url需要再回调解析函数,最终爬取的信息,作为参数传递给items,封装成类似字典,进入管道
3、pipelines.py 下载和保存所提取的信息
open函数,写入文件
4、settings.py 开启管道、cookies、robot协议等开关
一、创建项目和项目文件,运行项目
cmd命令行中输入
1.创建项目:
scrapy startproject 项目名字
切换到项目目录下
2.创建项目文件:
scrapy genspider 文件名 爬取的目标主域名
3.运行项目
命令行中输入和创建main.py文件都可以
main.py
from scrapy import cmdline
cmdline.execute('scrapy crawl fofa'.split())
# 加.split()分隔下 'scrapy crawl fofa'会有空格,避免输入错误,也是支持运行的
二、所需信息名字,封装到items中
把需要信息的类别名字封成类似字典容器一样,相当于以后爬取信息的标头Key键
items.py
import scrapy
class SqUrlItem(scrapy.Item):
urls=scrapy.Field()
ips=scrapy.Field()
三、自定义request请求头和cookies,多页爬取
spiders包中,项目文件.py
import scrapy
from fake_useragent import UserAgent
from ..items import SqUrlItem
class FofaSpider(scrapy.Spider):
# 作为启动时候的名字,唯一性
name = 'fofa'
# 允许爬取的主域名
allowed_domains = ['fofa.info']
# 启动的初始连接,后期如果重写request请求这个就不管用了
# start_urls = ['http://fofa.info/']
# 自定义的请求头,cookies需要单独拿出来
headers = {
'Accept': ''
'Accept-Encoding': '',
'Accept-Language': '',
'Cache-Control': '',
'Connection': '',
'Host': '',
'If-None-Match': '""',
'Referer': '/',