Scrapy

$ Ubuntu 14.04 LTS

安装Scrapy

pip install scrapy

http://scrapy.org/

安装pip

sudo apt-get install python-pip

http://blog.youkuaiyun.com/kingppy/article/details/13080919

测试Scrapy

 1 pip install scrapy
 2 cat > myspider.py <<EOF
 3 
 4 from scrapy import Spider, Item, Field
 5 
 6 class Post(Item):
 7     title = Field()
 8 
 9 class BlogSpider(Spider):
10     name, start_urls = 'blogspider', ['http://blog.scrapinghub.com']
11 
12     def parse(self, response):
13         return [Post(title=e.extract()) for e in response.css("h2 a::text")]
14 
15 EOF
16 scrapy runspider myspider.py

[ERROR]You do not have a working installation of the service_identity module...

http://www.cnblogs.com/QuDump/p/3750447.html

pip install service_identity

Scrapy文档

http://scrapy-chs.readthedocs.org/zh_CN/0.24/

http://doc.scrapy.org/en/0.24/ 

05-28
### Scrapy框架的使用指南 Scrapy 是一个快速、高层次的 Web 抓取和爬虫框架,用于从网页中提取结构化数据[^1]。以下是关于如何使用 Scrapy 框架进行网页抓取的详细指南。 #### 1. 安装 Scrapy 在开始使用 Scrapy 之前,需要确保已正确安装该框架。大多数情况下,可以通过 `pip` 工具轻松安装 Scrapy。然而,在某些操作系统上可能会遇到依赖项问题,例如 macOS 上的加密构建问题[^3]。以下是一些安装步骤和注意事项: - **Linux**: 确保系统已安装必要的构建工具和依赖项。 - **macOS**: 如果遇到加密问题,可以尝试通过 Homebrew 安装 OpenSSL 并设置环境变量。 - **Windows**: 使用标准的 `pip install scrapy` 命令即可完成安装。 ```bash # 安装 Scrapy pip install scrapy # macOS 用户解决加密问题 brew install openssl export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" ``` #### 2. 创建 Scrapy 项目 创建一个新的 Scrapy 项目是启动爬虫的第一步。通过以下命令可以生成一个基础项目结构: ```bash scrapy startproject myproject ``` 这将生成一个包含必要文件和目录的项目结构,其中包括 `spiders` 目录,用于存放具体的爬虫脚本[^2]。 #### 3. 编写爬虫 Scrapy 的核心功能是通过编写爬虫来抓取目标网站的数据。以下是一个简单的爬虫示例,用于抓取某个网站的标题和链接: ```python import scrapy class ExampleSpider(scrapy.Spider): name = "example" # 爬虫名称 allowed_domains = ["example.com"] # 允许爬取的域名 start_urls = ["https://example.com"] # 初始请求的 URL def parse(self, response): for item in response.css("div.item"): # 使用 CSS 选择器提取数据 yield { "title": item.css("h2.title::text").get(), # 提取标题 "link": item.css("a::attr(href)").get(), # 提取链接 } ``` #### 4. 配置项目 Scrapy 提供了灵活的配置选项,允许用户自定义爬虫行为。可以在 `settings.py` 文件中调整以下参数: - `USER_AGENT`: 设置用户代理字符串以模拟浏览器访问。 - `DOWNLOAD_DELAY`: 控制下载延迟,避免对目标网站造成过大压力。 - `ROBOTSTXT_OBEY`: 是否遵守目标网站的 `robots.txt` 规则。 ```python # settings.py 示例 USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" DOWNLOAD_DELAY = 1 ROBOTSTXT_OBEY = True ``` #### 5. 运行爬虫 完成爬虫编写后,可以通过以下命令运行爬虫并保存结果: ```bash # 运行爬虫并将结果保存为 JSON 文件 scrapy crawl example -o output.json ``` #### 6. 数据存储与处理 Scrapy 支持多种数据输出格式(如 JSON、CSV、XML),并且可以通过管道(Pipelines)实现更复杂的数据处理逻辑。例如,将抓取的数据保存到数据库中: ```python # pipelines.py 示例 import sqlite3 class SQLitePipeline: def open_spider(self, spider): self.connection = sqlite3.connect("data.db") self.cursor = self.connection.cursor() self.cursor.execute(""" CREATE TABLE IF NOT EXISTS items ( title TEXT, link TEXT ) """) def close_spider(self, spider): self.connection.close() def process_item(self, item, spider): self.cursor.execute(""" INSERT INTO items (title, link) VALUES (?, ?) """, (item["title"], item["link"])) self.connection.commit() return item ``` 在 `settings.py` 中启用管道: ```python ITEM_PIPELINES = {"myproject.pipelines.SQLitePipeline": 300} ``` --- ### 注意事项 - 确保遵守目标网站的 `robots.txt` 文件规则,避免引发法律或道德问题。 - 对于动态内容加载的网站,可能需要结合 Selenium 或 Playwright 等工具处理 JavaScript 渲染。 - 调整爬取速度以避免对目标服务器造成过大的负载。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值