安装及使用scrapy爬虫框架
1、安装命令:pip install scrapy
mac电脑使用这个命令应该能直接安装成功,但是windows系统和Ubuntu系统在使用安装命令会抱一个错误
building ‘twisted.test.raiser’ extension
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools
需要安装一个C++的编译环境,但是安装C++可能会有点慢,所以可以到网上下载编译好的,网址如下:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载对应的版本就行。
然后安装Twisted,
pip install 路径/Twsited-18.9.0-cp36-cp36m-win_amd64.whl
如:pip install C:\Users\Local\Programs\Python36\Scripts\Twsited-18.9.0-cp36-cp36m-win_amd64.whl
运行完之后再运行pip install scrapy应该就没有问题了。
2、安装完之后导入scrapy就能使用了
import scrapy
# 定义一个类 继承scrapy.Spider
class MinimalSpider(scrapy.Spider):
# 爬虫名
name = 'minimalspider'
# start_requests发送请求
def start_requests(self):
print('1.start_request...')
urls = [‘网页地址’]
# 非阻塞
for url in urls:
req = scrapy.Request(url,callback=None)
yield req
# 阻塞
# resp = []
# for url in urls:
# # callback为None时默认回调parse方法
# req = scrapy.Request(url=url, callback=None)
# resp.append(req)
# return resp
# 返回response进行解析
def parse(self, response):
print('2.parse...')
print(response)
print(response.body)
运行命令:scrapy runspider 文件名称.py
windows运行的时候下可能会报一个错误,ImportError: No module named win32con或者ImportError: No module named win32api,这是因为windows没有win32api的库,Python没有自带访问Windows系统API的库,需要自行下载。
这时候则安装一下这个库,名字叫做pywin32
执行pip install pywin32命令即可
如果还不行,就到
https://sourceforge.net/projects/pywin32/files/pywin32/
下载自己版本的pywin32
3、用scrapy创建一个爬虫项目
1、创建项目:
scrapy startproject project_name
2、创建spider
cd project_name
scrapy genspider spider_name www.xxxx.com(爬取的网址)
3、目录结构
.
├── hangzhounews -- 项目根目录
│ ├── __init__.py
│ ├── __pycache__ --python运行临时文件 pyc
│ │ ├── __init__.cpython-36.pyc
│ │ └── settings.cpython-36.pyc
│ ├── items.py -- 用来定义爬取哪些内容 (类似Django中的models)
│ ├── middlewares.py --中间件
│ ├── pipelines.py --管道,用来处理爬取的数据
│ ├── settings.py --配置文件
│ └── spiders --自定义爬虫包
│ ├── __init__.py
│ ├── __pycache__
│ │ └── __init__.cpython-36.pyc
│ └── hangzhou.py --一个爬虫文件
└── scrapy.cfg -- 部署时候用的配置文件
在项目下的终端输入:scrapy 可查看一些命令
Available commands:
bench Run quick benchmark test
check Check spider contracts
crawl Run a spider
edit Edit spider
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
list List available spiders
parse Parse URL (using its spider) and print the results
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
Use "scrapy <command> -h" to see more info about a command