热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

(一)Scrapy库概述1,安装:pipinstallscrapy失败;运行D:\Python\Python36\python.exe-m

(一)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



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
author-avatar
大眼妹PS珺珺
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有