一 爬虫框架(scrapy)

一 .scrapy

https://www.cnblogs.com/wupeiqi/p/6229292.html

1.scrapy简介

Scrapy 是一个用 Python 实现的为了爬取网站数据、提取结构性数据的应用框架。
Scrapy 使用Twisted异步网络库来处理网络通讯。
使用 Scrapy 框架可以高效(爬取效率和开发效率)完成网站数据爬取任务。
pip install pywin32
pip install zope.interface
pip install Twisted
pip install pyOpenSSL
pip install Scrapy

2. 创建项目

创建:

scrapy startproject Demo   第一: 创建启动项目

H:\web_creeper\web_scrapy>scrapy startproject dome
New Scrapy project 'dome', using template directory 'd:\python\lib\site-packages\scrapy\templates\project', created in:
    H:\web_creeper\web_scrapy\dome

You can start your first spider with:
    cd dome
    scrapy genspider example example.com                表示生成一个爬虫    表示爬虫名称    爬虫的起始地址


H:\web_creeper\web_scrapy\dome>   scrapy genspider baidu baidu.com   第二部: 创建爬虫


第三步: 启动爬虫    scrapy  crawl chouti  默认要打印日志
                  scrapy  crawl   baidu  --nolog  不打印日志




爬虫项目的目录结构:

items.py:用来存放爬虫爬取的数据的模型
middlewares.py:用来存放各种中间件的文件
pipelines.py:用来将items的模型存储到本地磁盘
settings.py:存储本爬虫的一些配置信息,比如:请求头、ip代理池等
spiders目录:存储所有的爬虫代码
scrapy.cfg:项目的配置文件

    

 关于windows编码

#
-*- coding: utf-8 -*- import sys,os,io sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') import scrapy class BaiduSpider(scrapy.Spider): name = 'baidu' # 爬虫名称 allowed_domains = ['baidu.com'] # allowed_domains 定向爬虫(就是只爬一个网址) start_urls = ['http://baidu.com/'] # 起始url def parse(self, response): # 回调函数 封装了所有响应数据 print(response,type(response),111111111111111) print(response.text)
scrapy parse函数为什么执行了,打印不了内容

解决:

1.找到settings.py配置文件

把ROBOTSTXT修改为False

2.然后退出重启一下scrapy(pychram)

3.直接启动项目scrapy crawl baidu --nolog(不打印日志)

 

posted @ 2019-11-04 23:24  supreme999  阅读(247)  评论(0编辑  收藏  举报