0 安装scrapy
sudo pip3 install --upgrade pip
sudo -H pip3 install scrapy
查看版本
scrapy -h
1 Scrapy爬虫实例
@1 建立一个Scrapy爬虫工具
scrapy startproject hezuijiudexiaobai #工程目录
生成的工程目录
@2 在工程中产生一个Scrapy爬虫(进入工程目录)
cd hezuijiudexiaobai
scrapy genspider demo hezuijiudexiaobai.io
也可手动生成
parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求
@3 配置产生的spider爬虫
- 初始URL地址
- 获取页面后的解析方式
# -*- coding: utf-8 -*-
import scrapy
class DemoSpider(scrapy.Spider):
name = 'demo'
# allowed_domains = ['hezuijiudexiaobai.io']
# start_urls = ['http://hezuijiudexiaobai.io/']
start_urls = ['http://python123.io/ws/demo.html'] #(1)初始URL地址
# parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求
def parse(self, response):
# pass (2)获取页面后的解析方式
fname = response.url.split('/')[-1]
with open(fname, 'wb') as f:
f.write(response.body)
self.log("Saved file %s." % fname)
@4 运行爬虫,获取网页
scrapy crawl demo
优化demo.py
# -*- coding: utf-8 -*-
import scrapy
class DemoSpider(scrapy.Spider):
name = 'demo'
def start_requests(self):
urls = [
'http://python123.io/ws/demo.html'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse) #生成器
# parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求
def parse(self, response):
# pass (2)获取页面后的解析方式
fname = response.url.split('/')[-1]
with open(fname, 'wb') as f:
f.write(response.body)
self.log("Saved file %s." % fname)