【转载】Scrapy安装及demo测试笔记
Scrapy安装及demo测试笔记
Scrapy安装及demo测试笔记
一、环境搭建
1. 安装scrapy:pip install scrapy
2.安装:PyWin32,可以从网上载已编译好的安装包:http://www.lfd.uci.edu/%7Egohlke/pythonlibs/#pywin32
安装完之后会报如下错误
解决办法,把以下两个文件拷贝到C:\Windows\System32目录下
二、创建scrapy工程(在此用网上别人提供的例子)
1.cmd的方式进到某个指定目录(d:/tmp/)下执行:scrapy startproject myscrapy,命令执行完之后,生成的目录结构如下
2.设置items
- # -*- coding: utf-8 -*-
- # Define here the models for your scraped items
- #
- # See documentation in:
- # http://doc.scrapy.org/en/latest/topics/items.html
- import scrapy
- class MyscrapyItem(scrapy.Item):
- news_title = scrapy.Field() #南邮新闻标题
- news_date = scrapy.Field() #南邮新闻时间
- news_url = scrapy.Field() #南邮新闻的详细链接
3.编写 spider
- # -*- coding: utf-8 -*-
- import scrapy
- from myscrapy.items import MyscrapyItem
- import logging
- class myscrapySpider(scrapy.Spider):
- name = "myscrapy"
- allowed_domains = ["njupt.edu.cn"]
- start_urls = [
- "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/1/list.htm",
- ]
- def parse(self, response):
- news_page_num = 14
- page_num = 386
- if response.status == 200:
- for i in range(2,page_num+1):
- for j in range(1,news_page_num+1):
- item = MyscrapyItem()
- item['news_url'],item['news_title'],item['news_date'] = response.xpath(
- "//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/font/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//td[@class='postTime']/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/@href").extract()
- yield item
- next_page_url = "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/"+str(i)+"/list.htm"
- yield scrapy.Request(next_page_url,callback=self.parse_news)
- def parse_news(self, response):
- news_page_num = 14
- if response.status == 200:
- for j in range(1,news_page_num+1):
- item = MyscrapyItem()
- item['news_url'],item['news_title'],item['news_date'] = response.xpath(
- "//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/font/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//td[@class='postTime']/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/@href").extract()
- yield item
4.编写pipelines
- # -*- coding: utf-8 -*-
- # Define your item pipelines here
- #
- # Don't forget to add your pipeline to the ITEM_PIPELINES setting
- # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
- import json
- class MyscrapyPipeline(object):
- def __init__(self):
- self.file = open('myscrapy.txt',mode='wb')
- def process_item(self, item, spider):
- self.file.write(item['news_title'].encode("GBK"))
- self.file.write("\n")
- self.file.write(item['news_date'].encode("GBK"))
- self.file.write("\n")
- self.file.write(item['news_url'].encode("GBK"))
- self.file.write("\n")
- return item
5.编写settings.py
- # -*- coding: utf-8 -*-
- # Scrapy settings for myscrapy project
- #
- # For simplicity, this file contains only settings considered important or
- # commonly used. You can find more settings consulting the documentation:
- #
- # http://doc.scrapy.org/en/latest/topics/settings.html
- # http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
- # http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
- BOT_NAME = 'myscrapy'
- SPIDER_MODULES = ['myscrapy.spiders']
- NEWSPIDER_MODULE = 'myscrapy.spiders'
- # Crawl responsibly by identifying yourself (and your website) on the user-agent
- #USER_AGENT = 'myscrapy (+http://www.yourdomain.com)'
- # Obey robots.txt rules
- ROBOTSTXT_OBEY = True
- # Configure maximum concurrent requests performed by Scrapy (default: 16)
- #CONCURRENT_REQUESTS = 32
- # Configure a delay for requests for the same website (default: 0)
- # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay
- # See also autothrottle settings and docs
- #DOWNLOAD_DELAY = 3
- # The download delay setting will honor only one of:
- #CONCURRENT_REQUESTS_PER_DOMAIN = 16
- #CONCURRENT_REQUESTS_PER_IP = 16
- # Disable cookies (enabled by default)
- #COOKIES_ENABLED = False
- # Disable Telnet Console (enabled by default)
- #TELNETCONSOLE_ENABLED = False
- # Override the default request headers:
- #DEFAULT_REQUEST_HEADERS = {
- # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
- # 'Accept-Language': 'en',
- #}
- # Enable or disable spider middlewares
- # See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
- #SPIDER_MIDDLEWARES = {
- # 'myscrapy.middlewares.MyCustomSpiderMiddleware': 543,
- #}
- # Enable or disable downloader middlewares
- # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
- #DOWNLOADER_MIDDLEWARES = {
- # 'myscrapy.middlewares.MyCustomDownloaderMiddleware': 543,
- #}
- # Enable or disable extensions
- # See http://scrapy.readthedocs.org/en/latest/topics/extensions.html
- #EXTENSIONS = {
- # 'scrapy.extensions.telnet.TelnetConsole': None,
- #}
- # Configure item pipelines
- # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html
- ITEM_PIPELINES = {
- 'myscrapy.pipelines.MyscrapyPipeline': 1,
- }
- # Enable and configure the AutoThrottle extension (disabled by default)
- # See http://doc.scrapy.org/en/latest/topics/autothrottle.html
- #AUTOTHROTTLE_ENABLED = True
- # The initial download delay
- #AUTOTHROTTLE_START_DELAY = 5
- # The maximum download delay to be set in case of high latencies
- #AUTOTHROTTLE_MAX_DELAY = 60
- # The average number of requests Scrapy should be sending in parallel to
- # each remote server
- #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
- # Enable showing throttling stats for every response received:
- #AUTOTHROTTLE_DEBUG = False
- # Enable and configure HTTP caching (disabled by default)
- # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
- #HTTPCACHE_ENABLED = True
- #HTTPCACHE_EXPIRATION_SECS = 0
- #HTTPCACHE_DIR = 'httpcache'
- #HTTPCACHE_IGNORE_HTTP_CODES = []
- #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
6.进到D:\tmp\myscrapy\myscrapy\spiders启动爬虫并查看结果:scrapy crawl myscrapy
Scrapy安装及demo测试笔记
Scrapy安装及demo测试笔记
一、环境搭建
1. 安装scrapy:pip install scrapy
2.安装:PyWin32,可以从网上载已编译好的安装包:http://www.lfd.uci.edu/%7Egohlke/pythonlibs/#pywin32
安装完之后会报如下错误
解决办法,把以下两个文件拷贝到C:\Windows\System32目录下
二、创建scrapy工程(在此用网上别人提供的例子)
1.cmd的方式进到某个指定目录(d:/tmp/)下执行:scrapy startproject myscrapy,命令执行完之后,生成的目录结构如下
2.设置items
- # -*- coding: utf-8 -*-
- # Define here the models for your scraped items
- #
- # See documentation in:
- # http://doc.scrapy.org/en/latest/topics/items.html
- import scrapy
- class MyscrapyItem(scrapy.Item):
- news_title = scrapy.Field() #南邮新闻标题
- news_date = scrapy.Field() #南邮新闻时间
- news_url = scrapy.Field() #南邮新闻的详细链接
3.编写 spider
- # -*- coding: utf-8 -*-
- import scrapy
- from myscrapy.items import MyscrapyItem
- import logging
- class myscrapySpider(scrapy.Spider):
- name = "myscrapy"
- allowed_domains = ["njupt.edu.cn"]
- start_urls = [
- "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/1/list.htm",
- ]
- def parse(self, response):
- news_page_num = 14
- page_num = 386
- if response.status == 200:
- for i in range(2,page_num+1):
- for j in range(1,news_page_num+1):
- item = MyscrapyItem()
- item['news_url'],item['news_title'],item['news_date'] = response.xpath(
- "//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/font/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//td[@class='postTime']/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/@href").extract()
- yield item
- next_page_url = "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/"+str(i)+"/list.htm"
- yield scrapy.Request(next_page_url,callback=self.parse_news)
- def parse_news(self, response):
- news_page_num = 14
- if response.status == 200:
- for j in range(1,news_page_num+1):
- item = MyscrapyItem()
- item['news_url'],item['news_title'],item['news_date'] = response.xpath(
- "//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/font/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//td[@class='postTime']/text()"
- "|//div[@id='newslist']/table[1]/tr["+str(j)+"]//a/@href").extract()
- yield item
4.编写pipelines
- # -*- coding: utf-8 -*-
- # Define your item pipelines here
- #
- # Don't forget to add your pipeline to the ITEM_PIPELINES setting
- # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
- import json
- class MyscrapyPipeline(object):
- def __init__(self):
- self.file = open('myscrapy.txt',mode='wb')
- def process_item(self, item, spider):
- self.file.write(item['news_title'].encode("GBK"))
- self.file.write("\n")
- self.file.write(item['news_date'].encode("GBK"))
- self.file.write("\n")
- self.file.write(item['news_url'].encode("GBK"))
- self.file.write("\n")
- return item
5.编写settings.py
- # -*- coding: utf-8 -*-
- # Scrapy settings for myscrapy project
- #
- # For simplicity, this file contains only settings considered important or
- # commonly used. You can find more settings consulting the documentation:
- #
- # http://doc.scrapy.org/en/latest/topics/settings.html
- # http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
- # http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
- BOT_NAME = 'myscrapy'
- SPIDER_MODULES = ['myscrapy.spiders']
- NEWSPIDER_MODULE = 'myscrapy.spiders'
- # Crawl responsibly by identifying yourself (and your website) on the user-agent
- #USER_AGENT = 'myscrapy (+http://www.yourdomain.com)'
- # Obey robots.txt rules
- ROBOTSTXT_OBEY = True
- # Configure maximum concurrent requests performed by Scrapy (default: 16)
- #CONCURRENT_REQUESTS = 32
- # Configure a delay for requests for the same website (default: 0)
- # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay
- # See also autothrottle settings and docs
- #DOWNLOAD_DELAY = 3
- # The download delay setting will honor only one of:
- #CONCURRENT_REQUESTS_PER_DOMAIN = 16
- #CONCURRENT_REQUESTS_PER_IP = 16
- # Disable cookies (enabled by default)
- #COOKIES_ENABLED = False
- # Disable Telnet Console (enabled by default)
- #TELNETCONSOLE_ENABLED = False
- # Override the default request headers:
- #DEFAULT_REQUEST_HEADERS = {
- # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
- # 'Accept-Language': 'en',
- #}
- # Enable or disable spider middlewares
- # See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
- #SPIDER_MIDDLEWARES = {
- # 'myscrapy.middlewares.MyCustomSpiderMiddleware': 543,
- #}
- # Enable or disable downloader middlewares
- # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
- #DOWNLOADER_MIDDLEWARES = {
- # 'myscrapy.middlewares.MyCustomDownloaderMiddleware': 543,
- #}
- # Enable or disable extensions
- # See http://scrapy.readthedocs.org/en/latest/topics/extensions.html
- #EXTENSIONS = {
- # 'scrapy.extensions.telnet.TelnetConsole': None,
- #}
- # Configure item pipelines
- # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html
- ITEM_PIPELINES = {
- 'myscrapy.pipelines.MyscrapyPipeline': 1,
- }
- # Enable and configure the AutoThrottle extension (disabled by default)
- # See http://doc.scrapy.org/en/latest/topics/autothrottle.html
- #AUTOTHROTTLE_ENABLED = True
- # The initial download delay
- #AUTOTHROTTLE_START_DELAY = 5
- # The maximum download delay to be set in case of high latencies
- #AUTOTHROTTLE_MAX_DELAY = 60
- # The average number of requests Scrapy should be sending in parallel to
- # each remote server
- #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
- # Enable showing throttling stats for every response received:
- #AUTOTHROTTLE_DEBUG = False
- # Enable and configure HTTP caching (disabled by default)
- # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
- #HTTPCACHE_ENABLED = True
- #HTTPCACHE_EXPIRATION_SECS = 0
- #HTTPCACHE_DIR = 'httpcache'
- #HTTPCACHE_IGNORE_HTTP_CODES = []
- #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
6.进到D:\tmp\myscrapy\myscrapy\spiders启动爬虫并查看结果:scrapy crawl myscrapy
【转载】Scrapy安装及demo测试笔记的更多相关文章
- red5研究(一):下载,工程建立、oflaDemo安装、demo测试
一.red5下载.添加工程到myeclipse 1,从官网上下载red51.01版本(我下载的是red51.0的版本),下载链接http://www.red5.org/downloads/red5/1 ...
- hue安装及基本测试-笔记
#################################################################################################### ...
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
c#实例化继承类,必须对被继承类的程序集做引用 0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...
- Python、pip和scrapy的安装——Python爬虫学习笔记1
Python作为爬虫语言非常受欢迎,近期项目需要,很是学习了一番Python,在此记录学习过程:首先因为是初学,而且当时要求很快速的出demo,所以首先想到的是框架,一番查找选用了Python界大名鼎 ...
- Python3 Scrapy 安装方法
Python3 Scrapy 安装方法 (一脸辛酸泪) 写在前面 最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试. 没想到啊,这坑太深了... 看了看相关 ...
- 02 Linux 下安装JDK并测试开发“Hello World!”
测试环境 主机系统:Win7 64位 虚拟机:VMware® Workstation 11.1.0 虚拟机系统:CentOS 6.5 64位 Kernel 2.6.32-431.e16.x86_6 ...
- Python实用工具包Scrapy安装教程
对于想用每个想用Python开发网络爬虫的开发者来说,Scrapy无疑是一个极好的开源工具.今天安装之后觉得Scrapy的安装确实不易啊.所以在此博文一篇,往后来着少走弯路. 废话不多说了,如果 ...
- Chapter 2. OpenSSL的安装和配置学习笔记
Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装 ...
- 中标麒麟6.0_ICE3.4.2编译+demo测试(CPP)
(菜鸟版)确保 gcc版本4.4.6(其他版本未测试),4.8不行 一.降级GCC到4.4.6 注意:gcc g++ c++命令都为4.4.6(可用gcc -v; g++ -v; c++ -v 命令查 ...
随机推荐
- 实例说明 PeekMessage与GetMessage的区别
PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中 的消息派发出去. 不同点:无论应用程序消息队 ...
- #JS# 如何判断一个字符串是否为日期格式
var data = “2018-12-09”; //返回为false则是日期格式;isNaN(data)排除data为纯数字的情况(此处不考虑只有年份的日期,如‘2018’) if(isNaN(da ...
- nginx反代及后端web配置
一.反代配置,proxy_pass指向的upstream需要在反代的nginx.conf中配置 server {access_log /home/nginx/front_access.log;erro ...
- Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_import语句的解释
1. import语句.from...import语句.from...import*语句 解释:注意一定要在体同一级目录下 1.1 引入模块 格式:import module[,module2,... ...
- c++ 装饰器模式/包装模式
理解 使用两个隔离又继承自统一接口类的对象:方法对象(抽象/具体), 包装器对象(抽象/具体)实现多种组合只需要 n + m种实现, 而对比直接继承,则需要n*m 种实现,因此在面对多种具体类和多种额 ...
- 使script.bin文件配置生效的驱动
1.问题:在全志方案中如果需要设置上拉或者下拉模式,需要在script.bin(先转换为script.fex)中配置gpio口 如: 但是配置好后是不会生效的,需要写一个驱动来通过读取这个文件的gp ...
- GIS开源库OpenSceneGraph(OSG)、OSGEarth、GDAL、Qt、CGAL、Boost
GIS开源有这些库:OpenSceneGraph(OSG).OSGEarth.GDAL.Qt.CGAL.Boost
- 构建Oracle的Docker镜像
说明:本次构建环境,Centos7.7,Oracle12.2.0.1,Docker19 注意:已安装好docker的,请检查docker版本,1.13以下版本要升级: # df -h 命令检查根目录的 ...
- 利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别
用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考:https://www.cnblogs.com/guihua-pingting/p/12201077. ...
- GpsNet2020 车联网平台
车联网产业是汽车.电子.信息通信.道路交通运输等行业深度融合的新型产业,是全球创新热点和未来发展制高点.车企通过部署车联网系统,为车主提供更好的出行服务体验,增加产品竞争力.依托华为云.边.端协同优势 ...