python创建scrapy_一、【python scrapy 的使用】新建爬虫项目爬取一个页面

1.安装scrapy

终端命令:

pip3 install scrapy

2.创建项目

终端命令:

scrapy startproject

cd #进入工程目录

scrapy genspider

url domain为想爬取的网址域名

之后会在当前路径生成一个以projectname为名称的文件夹,以下projectname=mySpider ,spidername=epilepsy_spider、url domain=baidu.com为例,文件夹目录结构如图:

python创建scrapy_一、【python scrapy 的使用】新建爬虫项目爬取一个页面

scrapy文件目录结构

scrapy.cfg 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息,真正爬虫相关的配置信息在settings.py文件中

items.py 定义爬取数据的对象

pipelines 数据处理行为,如:一般结构化的数据持久化

settings.py 配置文件,如:递归的层数、并发数,延迟下载等

spiders 爬虫目录,如:创建文件,编写爬虫规则

3.编写items.py

– coding: utf-8 –

Define here the models for your scraped items

See documentation in:

https://docs.scrapy.org/en/latest/topics/items.html

import scrapy

class MovieItem(scrapy.Item):

define the fields for your item here like:

name = scrapy.Field()

4.编写epilepsy_spider.py包括爬去网页的起始路径和xpath表达式

– coding: utf-8 –

import scrapy

from mySpider.items import MovieItem

class MeijuSpider(scrapy.Spider):

name = ‘epilepsy_spider’

allowed_domains = [‘baidu.com’]

start_urls = [‘https://baike.baidu.com/medicine/disease/%E7%99%AB%E7%97%AB/1613?from=lemma’]

def parse(self, response):

movies = response.xpath(‘//*[@id=”medical_content”]/ul’).extract()

item = MovieItem()

item[‘name’] = movies

print(item[‘name’])

yield item

在pycharm项目内创建Spider项目时注意将Spider项目的父文件夹设置为Resource Root:文件夹右键->Make Directory as ->Resource Root

关于xpath表达式的使用见下一篇

5.编写pipeline.py定义爬取数据的保存路径

– coding: utf-8 –

Define your item pipelines here

Don’t forget to add your pipeline to the ITEM_PIPELINES setting

See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html

class MoviePipeline(object):

def process_item(self, item, spider):

with open(“./epilepsy.txt”, “a”) as fp:

for i in item[‘name’]:

fp.write(i+’\n’)

6.执行爬虫

终端命令:

scrapy crawl

Original: https://blog.csdn.net/weixin_30131105/article/details/113971359
Author: weixin_30131105
Title: python创建scrapy_一、【python scrapy 的使用】新建爬虫项目爬取一个页面

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/791910/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pandas多重索引补全子索引缺失的方法

    当数据中的dataframe(df)是一个二重索引且某一层索引的第二层索引值并不是全部索引值时,我们应该如何在该层索引插入第二层索引没有的值呢?本文记录自己的学习遇到的情况~ 如以…

    Python 2023年8月8日
    062
  • 【MySQL基础教程】DDL语句详细介绍

    前言 本文为 【MySQL基础教程】DDL语句 相关内容进行介绍,下边将对 数据库操&amp…

    Python 2023年9月16日
    043
  • 基于python+opencv+mediapipe实现手势识别详细讲解

    目录 运行环境: 一、opencv 二、meidapipe配置 三、实现手部的识别并标注 1、参数分析 1.multi_hand_landmarks 2.multi_hand_wo…

    Python 2023年8月1日
    058
  • 关于anaconda navigator打不开问题的解决

    1.找到路径C:\Users\Administrator下的.condarc,用记事本方式打开,将如下内容插入文件: channels: – http://mirrors.tuna…

    Python 2023年8月1日
    055
  • 一个普通java程序员的10年…泪奔 o(╥﹏╥)o o(╥﹏╥)o

    大家好,我是曹尼玛,是一个很普通java程序员,今天看了下日历,转眼间,毕业9年,工作10年了,经历比较多,受伤比较多,收获比较多,改变也很多,对未来也有一些规划,对java新人也…

    Python 2023年9月16日
    039
  • flask重录制版本

    flask部署 ssh连接服务器 putty连接服务器(大家应该都知道了) ssh保持长时间连接不断 编辑/etc/ssh/sshd_config,添加配置项: 2. Client…

    Python 2023年8月11日
    068
  • Python处理重复、缺失值

    使用Python处理数据的重复、缺失值 1 导入模块 先导入一些常用的模块 import numpy as np import pandas as pd import seabor…

    Python 2023年8月31日
    060
  • vue 前端项目搭建方法(源码安装教程二 Java和python版通用)

    一、安装nodejs环境 1.1 nodejs 下载地址:https://registry.npmmirror.com/binary.html?path=node/ 1.2 推荐安…

    Python 2023年8月10日
    062
  • 【Python手写笔记】 文件与异常,纯肝货

    前言 今天给大家分享一下我自己写的笔记,纯纯的都是干货,关于字好像也能看。这是我学python整理出来的一些资料,希望对大家 它起作用了。如果你想要更多的信息,你必须给予关注。 […

    Python 2023年5月24日
    069
  • 计算机硬件的读写速度差异

    现代计算机系统 存储器 寄存器 CPU时钟周期 高速缓存 主存 固态硬盘 机械硬盘 压榨CPU性能带来的问题 有序性问题 可见性问题 原子性问题 作者:小牛呼噜噜 | https:…

    Python 2023年10月22日
    051
  • pandas基本操作及拼接

    本文参考W3Cschool——”pandas中文教程”,进行归纳学习。附 ,需要自取。 pandas是在numpy的基础上开发的数据处理工具包,提供了快速、…

    Python 2023年8月7日
    044
  • pandas数据组合

    数据组合常用的方法有concat方法、append方法和merge方法,根据数据的特点不同,有不同的连接方式。 1、添加行 通过concat方法添加行,列相同时添加的行会在原来的列…

    Python 2023年8月19日
    023
  • Python pandas模块

    ; 1 pandas数据读取 Pandas需要先读取表格类型的数据,然后进行分析 1.1 读取文件和基础语句: 读取csv文件数据: import pandas as pd fil…

    Python 2023年8月19日
    035
  • pandas(本人复习记录)

    pandas 生成DataFrame 用Series字典对象生成DataFrame 读取数据 1.读取CSV数据 2.读取Excel数据 查看数据 转换数据格式 检查数据 pand…

    Python 2023年8月18日
    026
  • Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

    ⛳️ 学习前 本系列博客目标定位是 7 天内学会 Go 语言,并且找一个 Go 相关的工作,那必然存在一些前提条件,即前置技术点。 你需要: 具备一门编程语言基础,Python,P…

    Python 2023年5月24日
    0106
  • Numpy 库的函数

    1.字符串函数 (1)add():对两个数组的逐个字符串元素进行连接。 (2)multiply():返回按元素多重连接后的字符串。 (3)center():居中字符串。 (4)ca…

    Python 2023年8月29日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球