编写Python Scrapy爬虫需要遵循以下步骤:
pip install scrapy
scrapy startproject project_name
将project_name
替换为你的项目名称。这将在当前目录下创建一个名为project_name
的新文件夹,其中包含Scrapy项目的基本结构。
cd project_name
scrapy genspider spider_name example.com
将spider_name
替换为你的爬虫名称,将example.com
替换为你想要抓取的网站域名。这将在spiders
文件夹下创建一个名为spider_name.py
的新文件,其中包含爬虫的基本代码。
spider_name.py
文件,你会看到以下代码:import scrapy
class SpiderNameSpider(scrapy.Spider):
name = 'spider_name'
allowed_domains = ['example.com']
start_urls = ['http://example.com/']
def parse(self, response):
pass
你需要修改name
属性为你的爬虫名称,allowed_domains
属性为允许抓取的网站域名列表,以及start_urls
属性为爬虫开始抓取的URL列表。接下来,你需要实现parse
方法,该方法是Scrapy用来处理网页内容的回调函数。例如,你可以使用response.css
方法来提取页面中的数据:
import scrapy
class SpiderNameSpider(scrapy.Spider):
name = 'spider_name'
allowed_domains = ['example.com']
start_urls = ['http://example.com/']
def parse(self, response):
for item in response.css('div.item'):
yield {
'title': item.css('h2.title::text').get(),
'description': item.css('p.description::text').get(),
}
在这个例子中,我们提取了所有div
元素,类名为item
的子元素中的h2
和p
元素的文本内容。
scrapy crawl spider_name
这将启动爬虫并开始抓取网站内容。你可以在logs
文件夹中查看爬虫的输出。
-o
选项,如下所示:scrapy crawl spider_name -o output.json
这将把抓取到的数据保存到名为output.json
的文件中。
这只是编写Scrapy爬虫的基本步骤。Scrapy提供了许多高级功能,如中间件、管道、选择器等,可以帮助你更有效地抓取和处理数据。你可以查阅Scrapy官方文档以了解更多信息:https://docs.scrapy.org/