记录一次使用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框架已经搭建完成。
推荐阅读