python scrapy库_Python爬虫学习(三)使用Scrapy库

(一)Scrapy库概述

1,安装:pip  install  scrapy失败;

运行D:\Python\Python36\python.exe -m pip install --upgrade pip命令升级pip命令失败;

安装:D:\Python\Python36\python.exe -m pip install wheel

安装:D:\Python\Python36\python.exe -m pip install scrapy

2,框架概述:

81ad35b5c3faeb1df36fe5ea3b385297.png

8e857284efa666c96d3295114f0130dc.png

入口:SPIDERS;出口:ITEM  PIPELINES;用户编写SPIDERS(URL),ITEM  PIPELINES(对数据处理)

ENGINE:控制所有模块之间的数据流,根据条件触发事件,不允许用户修改,代码已实现

DOWNLOADER:根据请求下载网页,功能单一,不允许用户修改,代码已实现

SCHEDULER:对所有爬取请求进行调度管理,不允许用户修改,代码已实现

DOWNLOADER  MIDDLEWARE:用户可以修改配置;中间件

836608eb67a27104442fd18b67e08d59.png

SPIDERS:解析DOWNLOADER返回的响应(Response);产生爬取项(scraped  item);产生额外的爬取请求(Request);需要用户编写的最核心代码

ITEM  PIPELINES:以流水线方式处理Spider产生的爬取项;由一组操作顺序组成,每个操作是一个item  pipelines类型;操作可包括:清理,检验,查重爬虫项中HTML数据

将数据存入数据库;由用户编写功能

SPIDER  MIDDLEWARE:中间件

443d6b148956dec6061194c10b44b526.png

3,requests库和Scrapy库区别:

dac9f72791011d93d03fcc101b3e654c.png

ea13ac64d60a09a5983248c5659052f9.png

ba2ade595f22a7c58ca1857efc9a94d5.png

(二)Scrapy库的使用

1,Scrapy命令行:常用命令:创建过程,创建爬虫,运行爬虫为最常用命令

ba9ba2b9eacec9ba467171ae0b3e7135.png

2,爬取某个HTML:

(1)建立过程: scrapy startproject python123demo

70230c091b6462488988aa222dbcfff1.png

(2)建立爬虫demo:scrapy genspider demo python123.io;建立demo.py文件

#demo.py#-*- coding: utf-8 -*-

importscrapyclassDemoSpider(scrapy.Spider):

name= ‘demo‘allowed_domains= [‘python123.io‘] #说明只能爬取这个文件下的URL

start_urls = [‘http://python123.io/‘]def parse(self, response): #处理响应,解析内容形成字典,发现新的URL爬取请求

pass

(3),修改爬虫文件deom.py文件

#-*- coding: utf-8 -*-

importscrapyclassDemoSpider(scrapy.Spider):

name= ‘demo‘

#allowed_domains = [‘python123.io‘] #说明只能爬取这个文件下的URL

start_urls = [‘http://python123.io/ws/demo.html‘]def parse(self, response): #处理响应,解析内容形成字典,发现新的URL爬取请求

fname=response.url.split("/")[-1]

with open(fname,"wb") as f:

f.write(response.body)

self.log("保存文件:%s"%name)

(4),运行爬虫:scrapy crawl demo

2,yield:

24bd51c6f8e632d46dba1aa8fe296494.png

例子:

e3aa3a219c528706db7a1aaad638acdd.png

4a4d2607edba62bf1ded8944344ba9f3.png

3,相关类:

(1)request类:

3e966bdea6c38741226ea41e8a9127a4.png

(2)response类:

be459421976287e9109b396d73193a43.png

(3)Item类:类字典类型,可以按照字典类型操作;表示从HTML中提取的内容

4,CSS Selector:

027fbf95f1426bb34525839332637161.png

498659945455c49f97b0ceb43ef078e1.png

(三)实例:

实例一:

1,功能:

5404653e7f1ba6c28d48204781f7792d.png

2,实现难点:

3,准备工作:网站选取原则:

97d467358a3ca70aaff3049a398798ae.png

爬取链接:http://quote.eastmoney.com/stock_list.html#sh 东方财富股票综合排名

http://gu.qq.com/xxxxxx/gp  腾讯个股股票信息

先爬取股票综合排名:获取股票代码,放入搜狐股票的链接中转到个股信息

爬取股票综合排名网页发现:股票简略信息都在

中;一个行内是一支股票的信息;一行的第一列是代码,第二列         是股票名称

4,步骤:

原文:https://www.cnblogs.com/lq13035130506/p/12254076.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy是一个基于Python爬虫框架,它可以帮助我们快速高效地抓取网站数据。在这里,我将介绍Scrapy的基本用法,让您能够快速入门。 安装Scrapy ----------------------- 在安装Scrapy之前,我们需要先安装Python。然后,我们可以通过以下命令来安装Scrapy: ``` pip install scrapy ``` 创建Scrapy项目 ----------------------- 创建Scrapy项目的命令是: ``` scrapy startproject project_name ``` 这个命令将会在当前目录下创建一个名为project_name的文件夹,其中包含了Scrapy项目的基本结构。 编写Spider ----------------------- 在Scrapy中,Spider是用来定义爬取网站的规则的。我们可以通过以下命令来创建一个Spider: ``` scrapy genspider spider_name domain_name ``` 其中,spider_name是我们自己定义的Spider名称,domain_name是我们要抓取的网站域名。 接下来,我们需要在Spider中定义如何爬取网站。这里我们以爬取“http://quotes.toscrape.com/”网站上的名言警句为例。我们可以在Spider中定义如下规则: ```python import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get(), 'author': quote.css('span small::text').get(), 'tags': quote.css('div.tags a.tag::text').getall(), } next_page = response.css('li.next a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse) ``` 在上述代码中,我们首先定义了Spider的名称,接着定义了我们要爬取的起始URL,最后定义了如何解析网页的函数parse()。在parse()函数中,我们使用Scrapy的选择器来提取网页中的名言警句,并将其保存到字典中。接着,我们使用response.follow()函数来获取下一页的URL,并继续解析。 运行Spider ----------------------- 要运行我们刚才创建的Spider,我们可以使用以下命令: ``` scrapy crawl spider_name ``` 其中,spider_name是我们之前创建的Spider名称。 Scrapy会自动去抓取我们定义的起始URL,并根据我们定义的规则来解析网页。解析完成后,Scrapy会将结果保存到我们指定的位置。 总结 ----------------------- Scrapy是一个非常强大的Python爬虫框架,它可以帮助我们快速高效地抓取网站数据。在本教程中,我们介绍了Scrapy项目的创建、Spider的定义以及如何运行Spider。如果您想更深入地学习Scrapy,可以参考官方文档:https://docs.scrapy.org/en/latest/。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值