【python爬虫】Pycharm+Scrapy+win10搭建scrapy开发环境+运行一个Demo

准备工作

基础环境准备

  • win10
  • pycharm
  • python3(同时保证有pip环境)

scrapy环境准备

  1. 打开网址https://www.lfd.uci.edu/~gohlke/pythonlibs/
  2. 下载Twisted(按python版本+系统位数对应)(浏览器下ctrl+f直接搜索)
  3. 下载scrapy (截止本文撰写,当前版本是:Scrapy-1.6.0-py2.py3-NONE-any.whl)(不区分系统和python版本)
  4. 准备好这两个whl文件(我习惯在桌面建个临时文件夹,然后把他俩扔进去)
  5. 安装whl:在文件夹下按住shift 然后点击右键,选择在此处打开powershell。
  6. 执行命令pip install teisted文件名
  7. 执行命令pip install scrapy文件名
  8. 等待安装完成后 执行命令 pip list查看已经安装的python包中是否有上面两个模块,正常的话都有了。
  9. 如图,安装成功

在这里插入图片描述

pycharm创建一个scrapy项目

创建一个项目

  • 打开pycharm 创建一个普通的项目
    在这里插入图片描述
  • 打开pycharm自带的终端:terminal
  • 执行命令scrapy startproject demodemo
  • 创建目录如图
    在这里插入图片描述
    各个文件的用处:
../demodemo/           		 # 爬虫项目
	demodemo/         		 # 爬虫文件夹
	__init__.py    			 # 必须存在
	items.py        			# 字段 可以写需要爬取对象的类
	middlewares.py		#中间件
	pipelines.py				# 管道文件
	settings.py     			# 爬取配置
	spiders/        			# 开发位置
    scrapy.cfg          # 项目配置

写一个DEMO

  1. 在terminal中通过cd命令进入到spiders文件夹
  2. 执行命令scrapy genspider 爬虫名 爬虫域
  3. 在我的demo中:``````(对应的是 随便找了一个段子网站:https://ishuo.cn/ )
  4. 编辑items.py
# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html
#
# import scrapy
#
#
# class DemodemoItem(scrapy.Item):
#     # define the fields for your item here like:
#     # name = scrapy.Field()
#     pass


import scrapy

class DuanZiItem(scrapy.Item):
    # 作者
    author = scrapy.Field()
    # 内容
    word = scrapy.Field()

  1. 编辑spiders/Duanzi.py
# -*- coding: utf-8 -*-
# import scrapy
#
#
# class DuanziSpider(scrapy.Spider):
#     name = 'Duanzi'
#     allowed_domains = ['ishuo.cn']
#     start_urls = ['http://ishuo.cn/']
#
#     def parse(self, response):
#         pass
# -*- coding: utf-8 -*-


import scrapy
from demodemo.items import DuanZiItem

class DemospiderSpider(scrapy.Spider):
    # 爬虫名称
    name = 'duanzi'
    # 爬虫域
    allowed_domains = ['ishuo.cn']
    # 爬虫地址
    start_urls = ['http://ishuo.cn/']
    # 处理回复
    def parse(self, response):
        data_list = []
        text_list = response.xpath("//div[@id=\"list\"]/ul/li")
        for item in text_list:
            word = item.xpath('./div[@class=\"content\"]/text()').extract()[0]
            author = item.xpath('./div[@class="info"]/a/text()').extract()[0]
            ddata = DuanZiItem()
            ddata['author'] = author
            ddata['word'] = word

            data_list.append(ddata)
        pass
        # print(data_list)
        with open("demo.txt","w",encoding="utf-8") as f:
              f.write(str(data_list))

  1. 编辑setting.py
    修改一个值

ROBOTSTXT_OBEY = False

添加一个请求头


DEFAULT_REQUEST_HEADERS = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  # 'Accept-Language': 'en',
}
  1. 注意:这句话会报错from demodemo.items import DuanZiItem
    是因为本地包路径的问题
    解决方案:选中项目名
    (是scrapy项目名:demodemo 不是pycharm项目名demo)
    右键
    在这里插入图片描述

运行scrapy

执行命令:
scrapy crawl duanzi
即可看到一个txt文件

如何让pycharm运行scrapy

  1. 编写一个脚本
    放到项目根目录(与.cfg同目录)
    start.py
# -*- coding:utf-8 -*-

from scrapy import cmdline
cmdline.execute("scrapy crawl duanzi".split())

在这里插入图片描述
3.
在这里插入图片描述
4.选择刚才的start.py 并给这个脚本起个名字
apply

在这里插入图片描述

【完】

欢迎关注我的微信公众号:并非一无所有

### PyCharm 使用 Scrapy 爬虫框架 #### 安装 Scrapy 和配置环境 为了在 PyCharm使用 Scrapy 爬虫框架,首先需要确保 Python 已经正确安装并配置好开发环境。接着,在终端中执行命令来全局安装 Scrapy: ```bash pip install scrapy ``` 对于 Mac 用户来说,可能会遇到一些特定于操作系统的挑战[^3]。 #### 创建 Scrapy 项目 一旦 Scrapy 成功安装完毕,可以在目标文件夹内通过命令行工具创建一个新的 Scrapy 项目: ```bash scrapy startproject ScrapyDemo ``` 这一步会在当前路径下生成名为 `ScrapyDemo` 的新目录结构,其中包含了运行 Scrapy 所需的基础组件和设置文件[^2]。 #### 配置 PyCharm 进行调试 尽管 PyCharm 并未内置专门用于启动 Scrapy 调试模式的功能按钮,但是可以通过编写简单的辅助脚本实现这一目的。具体做法是在项目的根目录里新建一个 `.py` 文件作为入口点,并在此处调用 Scrapy 提供的相关 API 或者直接触发命令行指令以达到相同效果[^4]。 下面是一个可以用来启动 Spider 的简单例子——假设已经有一个 spider 名称为 `myspider.py`: ```python from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings if __name__ == '__main__': process = CrawlerProcess(get_project_settings()) process.crawl('myspider') process.start() ``` 保存上述代码到合适位置之后,就可以像平常那样利用 PyCharm 来设定断点、查看变量状态等来进行有效的调试工作了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值