安装scrapy
直接使用pip进行安装
pip3 install scrapy
创建项目
创建一个蜘蛛:baiduSpider
也可以定义为自己喜欢的文件名
scrapy startproject baiduSpider
进入项目目录,scrapy会自动创建一个新的子目录,与定义的文件名同名
cd baiduSpider
进入scrapy创建的文件夹后会发现其中包含一些配置文件以及一个spiders文件夹,我们将在这个文件夹内编写爬虫代码
cd spiders
touch article.py
# 打开创建的article.py文件编写代码
# 注意类名、函数名以及参数
# 项目里每个蜘蛛的名称必须唯一
import scrapy
class ArticleSpider(scrapy.Spider):
name='article'
def start_requests(self):
"""
scrapy定义的程序入口 用于生成scrapy用来抓取网站的request对象
"""
urls = [
'https://baike.baidu.com/item/Python',
'https://baike.baidu.com/item/Scrapy',
'https://baike.baidu.com/item/csdn'
]
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
return [scrapy.Request(url=url, callback=self.parse, headers=headers)
for url in urls]
def parse(self, response):
"""
由用户定义的回调函数,通过callback=self.parse给request传递对象
"""
url = response.url
title = response.css('h1::text').extract_first()
print('url:{}'.format(url))
print('title: {}'.format(title))
# 关闭robot协议:
在scrapy创建的baiduSpider文件夹下打开setting文件,
将 ROBOTSTXT_OBEY 的值设置为 False
运行scrapy
scrapy runspider article.py
运行截图
包含url 及title信息