【转载】Scrapy安装及demo测试笔记

Scrapy安装及demo测试笔记

原创 2016年09月01日 16:34:00

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

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Define here the models for your scraped items
  3. #
  4. # See documentation in:
  5. # http://doc.scrapy.org/en/latest/topics/items.html
  6. import scrapy
  7. class MyscrapyItem(scrapy.Item):
  8. news_title = scrapy.Field() #南邮新闻标题
  9. news_date = scrapy.Field()  #南邮新闻时间
  10. news_url = scrapy.Field()   #南邮新闻的详细链接

3.编写 spider

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. import scrapy
  3. from myscrapy.items import MyscrapyItem
  4. import logging
  5. class myscrapySpider(scrapy.Spider):
  6. name = "myscrapy"
  7. allowed_domains = ["njupt.edu.cn"]
  8. start_urls = [
  9. "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/1/list.htm",
  10. ]
  11. def parse(self, response):
  12. news_page_num = 14
  13. page_num = 386
  14. if response.status == 200:
  15. for i in range(2,page_num+1):
  16. for j in range(1,news_page_num+1):
  17. item = MyscrapyItem()
  18. item[‘news_url‘],item[‘news_title‘],item[‘news_date‘] = response.xpath(
  19. "//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/font/text()"
  20. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//td[@class=‘postTime‘]/text()"
  21. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/@href").extract()
  22. yield item
  23. next_page_url = "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/"+str(i)+"/list.htm"
  24. yield scrapy.Request(next_page_url,callback=self.parse_news)
  25. def parse_news(self, response):
  26. news_page_num = 14
  27. if response.status == 200:
  28. for j in range(1,news_page_num+1):
  29. item = MyscrapyItem()
  30. item[‘news_url‘],item[‘news_title‘],item[‘news_date‘] = response.xpath(
  31. "//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/font/text()"
  32. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//td[@class=‘postTime‘]/text()"
  33. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/@href").extract()
  34. yield item

4.编写pipelines

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Define your item pipelines here
  3. #
  4. # Don‘t forget to add your pipeline to the ITEM_PIPELINES setting
  5. # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
  6. import json
  7. class MyscrapyPipeline(object):
  8. def __init__(self):
  9. self.file = open(‘myscrapy.txt‘,mode=‘wb‘)
  10. def process_item(self, item, spider):
  11. self.file.write(item[‘news_title‘].encode("GBK"))
  12. self.file.write("\n")
  13. self.file.write(item[‘news_date‘].encode("GBK"))
  14. self.file.write("\n")
  15. self.file.write(item[‘news_url‘].encode("GBK"))
  16. self.file.write("\n")
  17. return item

5.编写settings.py

[java] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Scrapy settings for myscrapy project
  3. #
  4. # For simplicity, this file contains only settings considered important or
  5. # commonly used. You can find more settings consulting the documentation:
  6. #
  7. #     http://doc.scrapy.org/en/latest/topics/settings.html
  8. #     http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
  9. #     http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
  10. BOT_NAME = ‘myscrapy‘
  11. SPIDER_MODULES = [‘myscrapy.spiders‘]
  12. NEWSPIDER_MODULE = ‘myscrapy.spiders‘
  13. # Crawl responsibly by identifying yourself (and your website) on the user-agent
  14. #USER_AGENT = ‘myscrapy (+http://www.yourdomain.com)‘
  15. # Obey robots.txt rules
  16. ROBOTSTXT_OBEY = True
  17. # Configure maximum concurrent requests performed by Scrapy (default: 16)
  18. #CONCURRENT_REQUESTS = 32
  19. # Configure a delay for requests for the same website (default: 0)
  20. # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay
  21. # See also autothrottle settings and docs
  22. #DOWNLOAD_DELAY = 3
  23. # The download delay setting will honor only one of:
  24. #CONCURRENT_REQUESTS_PER_DOMAIN = 16
  25. #CONCURRENT_REQUESTS_PER_IP = 16
  26. # Disable cookies (enabled by default)
  27. #COOKIES_ENABLED = False
  28. # Disable Telnet Console (enabled by default)
  29. #TELNETCONSOLE_ENABLED = False
  30. # Override the default request headers:
  31. #DEFAULT_REQUEST_HEADERS = {
  32. #   ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘,
  33. #   ‘Accept-Language‘: ‘en‘,
  34. #}
  35. # Enable or disable spider middlewares
  36. # See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
  37. #SPIDER_MIDDLEWARES = {
  38. #    ‘myscrapy.middlewares.MyCustomSpiderMiddleware‘: 543,
  39. #}
  40. # Enable or disable downloader middlewares
  41. # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
  42. #DOWNLOADER_MIDDLEWARES = {
  43. #    ‘myscrapy.middlewares.MyCustomDownloaderMiddleware‘: 543,
  44. #}
  45. # Enable or disable extensions
  46. # See http://scrapy.readthedocs.org/en/latest/topics/extensions.html
  47. #EXTENSIONS = {
  48. #    ‘scrapy.extensions.telnet.TelnetConsole‘: None,
  49. #}
  50. # Configure item pipelines
  51. # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html
  52. ITEM_PIPELINES = {
  53. ‘myscrapy.pipelines.MyscrapyPipeline‘: 1,
  54. }
  55. # Enable and configure the AutoThrottle extension (disabled by default)
  56. # See http://doc.scrapy.org/en/latest/topics/autothrottle.html
  57. #AUTOTHROTTLE_ENABLED = True
  58. # The initial download delay
  59. #AUTOTHROTTLE_START_DELAY = 5
  60. # The maximum download delay to be set in case of high latencies
  61. #AUTOTHROTTLE_MAX_DELAY = 60
  62. # The average number of requests Scrapy should be sending in parallel to
  63. # each remote server
  64. #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
  65. # Enable showing throttling stats for every response received:
  66. #AUTOTHROTTLE_DEBUG = False
  67. # Enable and configure HTTP caching (disabled by default)
  68. # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
  69. #HTTPCACHE_ENABLED = True
  70. #HTTPCACHE_EXPIRATION_SECS = 0
  71. #HTTPCACHE_DIR = ‘httpcache‘
  72. #HTTPCACHE_IGNORE_HTTP_CODES = []
  73. #HTTPCACHE_STORAGE = ‘scrapy.extensions.httpcache.FilesystemCacheStorage‘

6.进到D:\tmp\myscrapy\myscrapy\spiders启动爬虫并查看结果:scrapy crawl myscrapy

Scrapy安装及demo测试笔记

原创 2016年09月01日 16:34:00

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

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Define here the models for your scraped items
  3. #
  4. # See documentation in:
  5. # http://doc.scrapy.org/en/latest/topics/items.html
  6. import scrapy
  7. class MyscrapyItem(scrapy.Item):
  8. news_title = scrapy.Field() #南邮新闻标题
  9. news_date = scrapy.Field()  #南邮新闻时间
  10. news_url = scrapy.Field()   #南邮新闻的详细链接

3.编写 spider

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. import scrapy
  3. from myscrapy.items import MyscrapyItem
  4. import logging
  5. class myscrapySpider(scrapy.Spider):
  6. name = "myscrapy"
  7. allowed_domains = ["njupt.edu.cn"]
  8. start_urls = [
  9. "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/1/list.htm",
  10. ]
  11. def parse(self, response):
  12. news_page_num = 14
  13. page_num = 386
  14. if response.status == 200:
  15. for i in range(2,page_num+1):
  16. for j in range(1,news_page_num+1):
  17. item = MyscrapyItem()
  18. item[‘news_url‘],item[‘news_title‘],item[‘news_date‘] = response.xpath(
  19. "//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/font/text()"
  20. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//td[@class=‘postTime‘]/text()"
  21. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/@href").extract()
  22. yield item
  23. next_page_url = "http://news.njupt.edu.cn/s/222/t/1100/p/1/c/6866/i/"+str(i)+"/list.htm"
  24. yield scrapy.Request(next_page_url,callback=self.parse_news)
  25. def parse_news(self, response):
  26. news_page_num = 14
  27. if response.status == 200:
  28. for j in range(1,news_page_num+1):
  29. item = MyscrapyItem()
  30. item[‘news_url‘],item[‘news_title‘],item[‘news_date‘] = response.xpath(
  31. "//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/font/text()"
  32. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//td[@class=‘postTime‘]/text()"
  33. "|//div[@id=‘newslist‘]/table[1]/tr["+str(j)+"]//a/@href").extract()
  34. yield item

4.编写pipelines

[python] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Define your item pipelines here
  3. #
  4. # Don‘t forget to add your pipeline to the ITEM_PIPELINES setting
  5. # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
  6. import json
  7. class MyscrapyPipeline(object):
  8. def __init__(self):
  9. self.file = open(‘myscrapy.txt‘,mode=‘wb‘)
  10. def process_item(self, item, spider):
  11. self.file.write(item[‘news_title‘].encode("GBK"))
  12. self.file.write("\n")
  13. self.file.write(item[‘news_date‘].encode("GBK"))
  14. self.file.write("\n")
  15. self.file.write(item[‘news_url‘].encode("GBK"))
  16. self.file.write("\n")
  17. return item

5.编写settings.py

[java] view plain copy

  1. # -*- coding: utf-8 -*-
  2. # Scrapy settings for myscrapy project
  3. #
  4. # For simplicity, this file contains only settings considered important or
  5. # commonly used. You can find more settings consulting the documentation:
  6. #
  7. #     http://doc.scrapy.org/en/latest/topics/settings.html
  8. #     http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
  9. #     http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
  10. BOT_NAME = ‘myscrapy‘
  11. SPIDER_MODULES = [‘myscrapy.spiders‘]
  12. NEWSPIDER_MODULE = ‘myscrapy.spiders‘
  13. # Crawl responsibly by identifying yourself (and your website) on the user-agent
  14. #USER_AGENT = ‘myscrapy (+http://www.yourdomain.com)‘
  15. # Obey robots.txt rules
  16. ROBOTSTXT_OBEY = True
  17. # Configure maximum concurrent requests performed by Scrapy (default: 16)
  18. #CONCURRENT_REQUESTS = 32
  19. # Configure a delay for requests for the same website (default: 0)
  20. # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay
  21. # See also autothrottle settings and docs
  22. #DOWNLOAD_DELAY = 3
  23. # The download delay setting will honor only one of:
  24. #CONCURRENT_REQUESTS_PER_DOMAIN = 16
  25. #CONCURRENT_REQUESTS_PER_IP = 16
  26. # Disable cookies (enabled by default)
  27. #COOKIES_ENABLED = False
  28. # Disable Telnet Console (enabled by default)
  29. #TELNETCONSOLE_ENABLED = False
  30. # Override the default request headers:
  31. #DEFAULT_REQUEST_HEADERS = {
  32. #   ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘,
  33. #   ‘Accept-Language‘: ‘en‘,
  34. #}
  35. # Enable or disable spider middlewares
  36. # See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html
  37. #SPIDER_MIDDLEWARES = {
  38. #    ‘myscrapy.middlewares.MyCustomSpiderMiddleware‘: 543,
  39. #}
  40. # Enable or disable downloader middlewares
  41. # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
  42. #DOWNLOADER_MIDDLEWARES = {
  43. #    ‘myscrapy.middlewares.MyCustomDownloaderMiddleware‘: 543,
  44. #}
  45. # Enable or disable extensions
  46. # See http://scrapy.readthedocs.org/en/latest/topics/extensions.html
  47. #EXTENSIONS = {
  48. #    ‘scrapy.extensions.telnet.TelnetConsole‘: None,
  49. #}
  50. # Configure item pipelines
  51. # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html
  52. ITEM_PIPELINES = {
  53. ‘myscrapy.pipelines.MyscrapyPipeline‘: 1,
  54. }
  55. # Enable and configure the AutoThrottle extension (disabled by default)
  56. # See http://doc.scrapy.org/en/latest/topics/autothrottle.html
  57. #AUTOTHROTTLE_ENABLED = True
  58. # The initial download delay
  59. #AUTOTHROTTLE_START_DELAY = 5
  60. # The maximum download delay to be set in case of high latencies
  61. #AUTOTHROTTLE_MAX_DELAY = 60
  62. # The average number of requests Scrapy should be sending in parallel to
  63. # each remote server
  64. #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
  65. # Enable showing throttling stats for every response received:
  66. #AUTOTHROTTLE_DEBUG = False
  67. # Enable and configure HTTP caching (disabled by default)
  68. # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
  69. #HTTPCACHE_ENABLED = True
  70. #HTTPCACHE_EXPIRATION_SECS = 0
  71. #HTTPCACHE_DIR = ‘httpcache‘
  72. #HTTPCACHE_IGNORE_HTTP_CODES = []
  73. #HTTPCACHE_STORAGE = ‘scrapy.extensions.httpcache.FilesystemCacheStorage‘

6.进到D:\tmp\myscrapy\myscrapy\spiders启动爬虫并查看结果:scrapy crawl myscrapy

时间: 2024-10-05 05:19:46

【转载】Scrapy安装及demo测试笔记的相关文章

red5研究(一):下载,工程建立、oflaDemo安装、demo测试

一.red5下载.添加工程到myeclipse 1,从官网上下载red51.01版本(我下载的是red51.0的版本),下载链接http://www.red5.org/downloads/red5/1_0_1/ 2,下载后的文件结构如下: 3,解压src.zip到当前目录,这个是red5的源文件.然后在myeclipse中添加一个新的java工程.把所有文件添加进这个工程中去. 4,如果是red51.0的版本的话,jdk要选择jdk1.6的版本,要不然会出现socket错误.如果是red51.0

ubuntu12.04+kafka2.9.2+zookeeper3.4.5的分布式集群安装和demo(java api)测试

博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1&do=blog&id=547 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作! --------------------------------------- 目录: 一.什么是kafka? 二.kafka的官方网站在哪里? 三.在哪里下载?需要哪些组件的支持? 四.如何安装? 五.FAQ 六.扩展阅读 一.什么是kafka? ka

kafka2.9.2的分布式集群安装和demo(java api)测试

目录: 一.什么是kafka? 二.kafka的官方网站在哪里? 三.在哪里下载?需要哪些组件的支持? 四.如何安装? 五.FAQ 六.扩展阅读   一.什么是kafka? kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目.在它的主页描述kafka为一个高吞吐量的分布式(能将消息分散到不同的节点上)MQ.Kafka仅仅由7000行Scala编写,据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB). kafka目

Windows10 python 3.5 Scrapy 安装配置

学习和使用python也有2年有余,一直在cnblogs里面寻求各种问题的解决方案,还未真正的记录下自己学习.思索的点点滴滴:从今天开始将自己的学习或者实践分享出来,其目的有二:1.监督自己不断学习,不断总结:2.将自己知道的分享出来,为后来者贡献一点儿绵薄之力.言归正传,今天首记录下Scrapy的安装和配置. 正如标题所示:我目前的操作系统和python软件分别是:windows 10 和 python 3.5,所以介绍的是基于以上环境的scrapy安装. 1.安装Twisted a.首先下载

Linux 下安装JDK并测试开发“Hello World!”

测试环境 主机系统:Win7 64位 虚拟机:VMware® Workstation 11.1.0 虚拟机系统:CentOS 6.5 64位   Kernel 2.6.32-431.e16.x86_64 一.下载JDK(Linux_x64) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.使用UltraIOS软件制作JDK镜像 三.在虚拟机中加载该JDK镜像文件 1. 单击

HTML5 Manifest使用测试笔记

此文纯属于个人笔记,个人能力有限,给看官带来误导请谅解,谢谢! 本文主要参考资料链接: http://www.cnblogs.com/powertoolsteam/archive/2011/04/02/2003834.html http://www.w3school.com.cn/html5/html_5_app_cache.asp http://www.w3school.com.cn/html5/html5_html.asp http://www.cnblogs.com/cxd4321/p/3

Chapter 2. OpenSSL的安装和配置学习笔记

Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装过openSSL,这次正好在Linux上面实现一下. 希望各位园友门纠错,征求意见中. 2.1.1 安装OpenSSL的系统环境和编译环境 测试环境:Linux MINT 16 Petra ? 1 2 3 4 5 6 $ lsb_release -a #查看linux发行版本系统信息 No LSB

Scrapy安装的那些事

收录待用,修改转载已取得腾讯云授权 Scrapy安装介绍 Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上.下面说明Python3环境下的安装过程. Scrapy依赖的库比较多,至少需要依赖库有Twisted 14.0,lxml 3.4,pyOpenSSL 0.14.而在不同平台环境又各不相同,所以在安装之前最好确保把一些基本库安装好,尤其是Windows. 腾讯云有Windows.Linux多个版本系统,在这里分别介绍. 各平台安装简介 Anaco

中标麒麟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 命令查询版本) 附:降级GCC-4.4.6参考:http://blog.sina.com.cn/s/blog_4e2804490100sccq.html 附:gcc下载地址:http://ftp.gnu.org/gnu/gcc/ ICE-3.4.2下载地址:https://zeroc.com/downlo