欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录一次使用scrapy进行数据采集

程序员文章站 2022-05-08 16:47:15
...

首先创建你的scrapy项目

scrapy startproject testSpider(你的爬虫的名字)(如果你有虚拟环境的话先进入你的虚拟环境中)


根据提示 进入你的爬虫的目录下

cd testSpider
scrapy genspider test 2717.com
#test是你的爬虫app的名字,588ku.com是你的目标url

创建了你的应用后 就可以对你爬虫进行编辑

进入你的testSpider文件中会发现一个spiders的文件夹 这个文件夹是你的爬虫的所有逻辑的代码。

├── __init__.py
├── __pycache__
│   ├── __init__.cpython-36.pyc
│   └── settings.cpython-36.pyc
├── items.py
├── middlewares.py
├── pipelines.py
├── settings.py
└── spiders
    ├── __init__.py
    ├── __pycache__
    │   └── __init__.cpython-36.pyc
    └── test.py

这个是你的爬虫的基本的目录,现在说一下你的爬虫文件的用途。

1.__init__.py是你的爬虫的初始化问价一般没什么用

2.items.py是你的爬虫的实体,比如一个类,这里可以定义你的实例中的属性,比如性别、年龄等等。

3.middlewares.py 这个是中间件文件,可以用来写你中间件代码,中间件是什么这里就不多阐述,这里只用来说一下是用来加代理的地方。

4.piplines.py是你的管道文件 用来将你的数据进行入库和写入到excel中。

5.test.py是你的爬虫核心逻辑的文件。

首先要去书写你的test文件,你的test文件打开后应该是这样的

# -*- coding: utf-8 -*-
import scrapy

class TestSpider(scrapy.Spider):
    name = 'test'
    allowed_domains = ['2717.com']
    start_urls = ['https://www.2717.com/ent/meinvtupian/']

    def parse(self, response):
        pass

name 是你的爬虫的名字,allowed_domains 是你的限制域名 是一个list,意思是只允许当前域名的url通过请求

start_urls是你的起始url。

parse函数 是用来将你的页面进行解析的地方。参数中response是你目标url的返回内容,包含状态码、cookie、content等等。

要想启动你的爬虫首先要将settings中的配置项打开

ROBOTSTXT_OBEY = False

这个要改成False才能对数据进行采集。

你的parse函数为

img_list = response.xpath('/html/body/div[2]/div[@class="MeinvTuPianBox"]/ul/li')
        for imgs in img_list:
            img = imgs.xpath('./a/@href').extract()[0]
            imglink = 'https://www.2717.com' + img
            print(imglink)

涉及到的xpath语法这里不多讲述,详细语法请参考 http://www.w3school.com.cn/xpath/xpath_syntax.asp这里已经对xpath做了详细的描述。

好,一个初级的scrapy框架已经搭建完成。