1.递归调用网址。
要使用
from scrapy.http import Request
yield Request(url)
主要是要在parse函数中返回一个Request对象。 其中注意yield关键词,此关键词的作用是返回某个对象后继续执行。如果不用该关键字,则直接会在函数中返回。
2. 编码问题 exceptions.LookupError: unknown encoding: cp65001
此参考http://stackoverflow.com/questions/878972/windows-cmd-encoding-change-causes-python-crash
简而言之,cp65001是utf8的别名,但是python却不认这个别名
可以在代码中添加
简而言之,cp65001是utf8的别名,但是python却不认这个别名
可以在代码中添加
import codecs
codecs.register(lambda name: name == 'cp65001' and codecs.lookup('utf-8') or None)
3.scrapy自带的url提取函数
通过SgmlLinkExtractor来实现,具体代码如下
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
lx = SgmlLinkExtractor()
urls = lx.extract_links(response)
4.使用ImagesPipeline
使用ImagesPipeline 时需要安装Python Imaging Library
地址http://www.pythonware.com/products/pil/
5.关于64位windows下安装scrapy
别人用的64位机子,安装起来问题很多。Scrapy提供了如何在64位电脑上安装的指南https://github.com/scrapy/scrapy/wiki/How-to-Install-Scrapy-0.14-in-a-64-bit-Windows-7-Environment
此外如果有些包装不上的话可以去Unofficial Windows Binaries for Python Extension Packages下载对应的包
http://www.lfd.uci.edu/~gohlke/pythonlibs/