安装环境
安装python3,下载地址:https://www.python.org/downloads/
开发工具
工具使用pycharm,下载地址:https://www.jetbrains.com/pycharm/?fromMenu
python基础
python基础教程,掌握python简单语法
在windows 环境下安装 Scrapy
1.直接使用指令pip install scrapy,发现有诸多错误
Failed building wheel for lxml
Microsoft Visual C++ 14.0 is required
Failed building twisted
Unable to find vcvarsall.bat
2.解决方案:
在网站: http://www.lfd.uci.edu/~gohlke/pythonlibs 中寻找对应的Python版本库
我的Python版本为:Python 3.6.4-64bit。
登录后搜索: Lxml,Twisted,Scrapy 下载对应的版本
使用 pip install [文件名称]
这里不一一演示了,每个人的情况都会有区别,反正根据错误提示寻找到对应到文件安装就行。
创建Scrapy项目
新建一个工程:
scrapy startproject [项目名称]
例:scrapy startproject tmall
构建爬虫:
scrapy genspider [脚本名称] [网址]
例: scrapy genspider product tmall.com
注:一个工程中可以存在多个spider, 但是名字必须唯一
使用pycharm打开项目
项目结构:
tmall/
scrapy.cfg # 部署配置文件
tmall/ # Python模块,代码写在这个目录下
__init__.py
items.py # 项目项定义文件
pipelines.py # 项目管道文件
settings.py # 项目设置文件
spiders/ # 我们的爬虫/蜘蛛 目录
__init__.py
product.py # 爬虫脚本
product.py脚本内容:
import scrapy
class ProductSpider(scrapy.Spider):
name = 'product'
def start_requests(self):
urls=['http://www.tmall.com']
for url in urls:
yield scrapy.Request(url=url,callback=self.parse)
def parse(self, response):
filename = 'tmall.html'
with open(filename,'wb') as f:
f.write(response.body)
self.log('Saved file' % filename)
运行爬虫
进入项目根目录:
cd tmall
执行爬虫:
scrapy crawl product
或者编写一个debug.py的脚本:
from scrapy.cmdline import execute
execute("scrapy crawl product".split())
执行后,项目根目录会生成一个名为:tmall.html的文件 这个文件就是爬虫抓取的网页内容
注意:
1、scrapy爬虫出现Forbidden by robots.txt
解决方案:
关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,并设置为False。
2、缺少win32api包
ModuleNotFoundError: No module named 'win32api'
解决方案:
pip install pypiwin32