
0-Scrapy
环境搭建
安装 scrapy
1 |
|
安装依赖
1 |
|
windows需要安装, mac/linux无需安装
创建项目
命令
1 |
|
项目结构
- ./projectname/
- /projectname/
- __init__.py
- /__pycache__/
- items.py:预计要爬取的内容
- middlewares.py: 自定义中间件
- piplines.py: 管道 保存数据
- setting.py:设置文件 UserAgent 启动管道
- /spiders/: 自定义的 spider 的文件夹
- __init__.py
- /__pycache__/
- scrapy.cfg: 项目配置文件
- /projectname/
创建爬虫
命令
进入目录
1
cd <projectname>
创建爬虫
1
scrapy genspider example example.com
例如
1
scrapy genspider lianjia lianjia.com
此时
lianjia.py
创建在了spiders
目录(见创建项目-项目结构
下该文件用于数据解析以及翻页等逻辑处理
文件介绍
此后都以
lianajia.com
为例
lianjia.py
1
2
3
4
5
6
7
8
9import scrapy
class LianjiaSpider(scrapy.Spider):
name = 'lianjia'
allowed_domains = ['lianjia.com']
start_urls = ['http://lianjia.com/']
def parse(self, response):
pass参数说明
- name: 爬虫名字
- allowed_domains: 域名范围
- start_urls: 爬虫起始
url
- response: 起始的响应体
运行爬虫
命令行
在命令行运行爬虫
1
scrapy crawl <spidername>
不带日志运行爬虫
1
scrapy crawl <spidername> --nolog
启动文件
创建启动文件 例如
./myspider/myspider/start.py
1
2from scrapy import cmdline
cmdline.execute(['scrapy', 'crawl', 'lianjia'])
爬虫设置
settings.py
robotstxt
1
2# Obey robots.txt rules
ROBOTSTXT_OBEY = True注释
1
2# Obey robots.txt rules
# ROBOTSTXT_OBEY = Trueuser-agent
1
2# Crawl responsibly by identifying yourself (and your website) on the user-agent
# USER_AGENT = 'rd (+http://www.yourdomain.com)'把
USER_AGENT
取消注释, 改为自己的代理1
2# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36'
解析数据
操作技巧
相应对象 response