scrapy入门——实战爬取doxmark信息

在此以前我们学会了使用urllib来实现简单的爬虫文件爬取网络信息!但是这还远远不够的。

Scrapy是一个Python的爬虫框架,使用scrapy可以提高开发效率,并且非常适合做一些中大型的爬虫项目。提高稳定性。

scrapy安装

1、升级pip:python -m pip install --upgrade pip

2、安装wheel:pip install wheel

3、安装lxml:pip install lxml

4、安装twisted:pip install twisted

5、安装scrapy:pip install scrapy

scrapy入门——实战爬取doxmark信息_第1张图片

检测是否安装成功可以通过输入scrapy命令查看,如果执行scrapy命令后有东西显示出来,则表示安装成功,如下图:

scrapy入门——实战爬取doxmark信息_第2张图片

 

scrapy指令

bench:可以在项目里面,也可以在项目外面执行

fetch:直接下载某个网页

genspider:基于一个爬虫模板,创建一个爬虫文件

runspider:运行一个爬虫

setting:配置爬虫项目

shell:进入交互模式

startproject:创建爬虫项目

view:在浏览器中打开url网址

 

scrapy指令根据作用范围大小分为:

1、全局指令:无须在项目目录下才能执行的指令

2、项目指令:必须在项目目录下才能执行的指令

如项目地址以外执行:scrapy

scrapy入门——实战爬取doxmark信息_第3张图片

 

项目地址里面执行scrapy:

scrapy入门——实战爬取doxmark信息_第4张图片

scrapy实现项目

1、创建爬虫项目

scrapy入门——实战爬取doxmark信息_第5张图片

创建项目成功后,在相应的目录会生成一个文件夹

scrapy入门——实战爬取doxmark信息_第6张图片

scrapy入门——实战爬取doxmark信息_第7张图片

把需要爬取的目标属性全部在items.py中定义好。

 

2、创建爬虫文件

其实上一步人家也提醒你了,按照这样的方式来创建爬虫文件,提示为黄色标记部分。

scrapy入门——实战爬取doxmark信息_第8张图片

格式:scrapy genspider {文件名} {爬取目标地址}

如上表示创建一个名为testspider的爬虫文件,用于爬取baidu.com地址的数据。执行成功后会生成相应的文件

scrapy入门——实战爬取doxmark信息_第9张图片

 

文件修改顺序

scrapy入门——实战爬取doxmark信息_第10张图片

 

实战爬取doxmark信息:

我们要爬取官网的

scrapy入门——实战爬取doxmark信息_第11张图片

 

 

1、首先用pycharm打开这个项目,编写items.py

scrapy入门——实战爬取doxmark信息_第12张图片

2、编辑spider文件

访问我们需要爬取的网页https://www.dxomark.com/cn/,然后观察他的规则

scrapy入门——实战爬取doxmark信息_第13张图片

3、了解xpathhttps://www.w3school.com.cn/xpath/xpath_syntax.asp,会的直接跳过

如果你还没有掌握xpath的话,建议先去了解一下,因为后面会用到这个规则去解析数据。当然啦,我们也有一个更便捷的方法可以生成xpath。在浏览器上右键,点击“检查元素”,定位到相应的标签以后,右键--》copy--》xpathscrapy入门——实战爬取doxmark信息_第14张图片

找到了以后,按ctrl+F进行查询,把刚才copy的xpath粘贴到此处,如下图,可以显示出找到的标签。

scrapy入门——实战爬取doxmark信息_第15张图片

4、编写爬虫文件,如spiders/testspider.py

# -*- coding: utf-8 -*-
import scrapy
from TestProject1.items import Testproject1Item

class TestspiderSpider(scrapy.Spider):
    name = 'testspider'
    allowed_domains = ['baidu.com']
    start_urls = ['https://www.dxomark.com/cn/']

    def parse(self, response):
        item = Testproject1Item()
        item['title'] = response.xpath("//h5[@class='post-title is-large ']/text()").extract()
        item['url'] = response.xpath('//div[@class="row row-full-width"]/div/div/a/@href').extract()
        print(item)

 

 

5、执行scrapy项目:

如要用命令来执行,如执行testspider爬虫,scrapy crawl testspider --nolog

效果图:

scrapy入门——实战爬取doxmark信息_第16张图片

 

 

你可能感兴趣的:(python)