Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖

掘,信息处理或存储历史数据等一系列的程序中。

1. 安装scrapy:

pip install scrapy

注意:需要安装在python解释器相同的位置,例如:D:\Program Files\Python3.11.4\Scripts

若安装时报错缺少twisted,解决方法:安装twisted合适的版本 twisted下载路径

下载 twisted后,安装twisted:pip install twisted路径

查看python版本:终端输入python

若报错win32错误,解决方法:pip install pypiwin32

若是仍然报错,可安装anaconda,若使用anaconda,pycharm里的解释器也需要换成anaconda的的路径 Anaconda 安装

(注意:安装anaconda时,安装路径下不能有任何文件,否则可能会导致不能用 )

2. 使用scrapy创建项目:

scrapy startproject 项目名字(项目名字不能用数字开头,不能包含中文)

复制代码
项目结构:
spiders
    init_.py
    自定义的爬虫文件.py   ---》由我们自己创建,是实现爬虫核心功能的文件
init__.py
items.py          ---》定义数据结构的地方(爬取的数据有哪些),是一个继承自                scrapy.Item的类
middlewares.py    ---》中间件 代理
pipelines.py      ---》管道文件,里面只有一个类,用于处理下载数据的,后续处理默认是300优先级,值越小优先级越高 (1-10)
settings.py       ---》配置文件 比如: 是否遵守robots协议,user-Agent定义等

3. 创建爬虫文件

在spiders下创建,进入spiders目录: cd .\项目名字\项目名字\spiders

scripy genspider 爬虫文件的名字 要爬取的网页(一般情况下不需要添加http协议)

4. 运行爬虫程序

scrapy crawl 爬虫的名字(名字为程序中的name)

例子:

python 复制代码
# spider下的爬虫文件
import scrapy


class TongchengSpider(scrapy.Spider):
    name = "tongcheng"
    allowed_domains = ["https://sz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_E%2Cuuid_YZWJGz6dw5SYe54A6jYeyfiY5J4TPdc8&search_uuid=YZWJGz6dw5SYe54A6jYeyfiY5J4TPdc8&search_type=input"]
    start_urls = ["https://sz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_E%2Cuuid_YZWJGz6dw5SYe54A6jYeyfiY5J4TPdc8&search_uuid=YZWJGz6dw5SYe54A6jYeyfiY5J4TPdc8&search_type=input"]

    def parse(self, response):
        print("学习scrapy")
        content = response.text   # 获取的是响应的字符串
        content1 = response.body  # 获取的是二进制数据
        # span = response.xpath("xpath语法")  # 可以直接是xpath方法来解析response中的内容
        span = response.xpath('//div[@id="filter"]/div[@class="tabs"]/a/span')[0]  # xpath
        print("=================================================================")
        print(span.extract())   # 提取seletor对象的data的属性值
        print(span.extract_first())  # 提取的seletor列表的第一个数据
相关推荐
yq198204301156几秒前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class2 分钟前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
Jinkxs4 分钟前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&4 分钟前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
小瑞瑞acd10 分钟前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习
火车叼位28 分钟前
也许你不需要创建.venv, 此规范使python脚本自备依赖
python
BD_Marathon34 分钟前
设计模式——依赖倒转原则
java·开发语言·设计模式
火车叼位35 分钟前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
孤狼warrior1 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
devmoon1 小时前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡