在此以前我们学会了使用urllib来实现简单的爬虫文件爬取网络信息!但是这还远远不够的。
Scrapy是一个Python的爬虫框架,使用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命令查看,如果执行scrapy命令后有东西显示出来,则表示安装成功,如下图:
bench:可以在项目里面,也可以在项目外面执行
fetch:直接下载某个网页
genspider:基于一个爬虫模板,创建一个爬虫文件
runspider:运行一个爬虫
setting:配置爬虫项目
shell:进入交互模式
startproject:创建爬虫项目
view:在浏览器中打开url网址
scrapy指令根据作用范围大小分为:
1、全局指令:无须在项目目录下才能执行的指令
2、项目指令:必须在项目目录下才能执行的指令
如项目地址以外执行:scrapy
项目地址里面执行scrapy:
1、创建爬虫项目
创建项目成功后,在相应的目录会生成一个文件夹
把需要爬取的目标属性全部在items.py中定义好。
2、创建爬虫文件
其实上一步人家也提醒你了,按照这样的方式来创建爬虫文件,提示为黄色标记部分。
格式:scrapy genspider {文件名} {爬取目标地址}
如上表示创建一个名为testspider的爬虫文件,用于爬取baidu.com地址的数据。执行成功后会生成相应的文件
文件修改顺序
我们要爬取官网的
1、首先用pycharm打开这个项目,编写items.py
2、编辑spider文件
访问我们需要爬取的网页https://www.dxomark.com/cn/,然后观察他的规则
3、了解xpathhttps://www.w3school.com.cn/xpath/xpath_syntax.asp,会的直接跳过
如果你还没有掌握xpath的话,建议先去了解一下,因为后面会用到这个规则去解析数据。当然啦,我们也有一个更便捷的方法可以生成xpath。在浏览器上右键,点击“检查元素”,定位到相应的标签以后,右键--》copy--》xpath
找到了以后,按ctrl+F进行查询,把刚才copy的xpath粘贴到此处,如下图,可以显示出找到的标签。
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
效果图: