Scrapy安装
1. scrapy需要安装第三方库文件,lxml和Twisted
2. 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/
3. 下载好文件之后,在DOS命令下pip install 文件的位置(lxlm)安装。
4. 安装完成就可以安装:pip install scrapy
5. 安装 win32:pip install pypiwin32
Scrapy运行流程
1 引擎访问spider,询问需要处理的URL链接,spider收到请求,将需要处理的URL告诉引擎,然后将URL给引擎处理。
2 引擎通知调度器,调度器得到通知将URL排序入队,并加以处理。
3 引擎通知调度器,调度器将处理好的request返回给引擎
4 引擎接收到request后告诉下载器,按照setting中配置的顺序下载这个request的请求
5 下载器收到请求,将下载好后的东西返回给引擎。如果下载失败,下载器会通知引擎,引擎再通知调度器,调度器收到消息后会记录这个下载失败的request。
6 引擎得到下载好的东西后,通知spider(这里responses默认是交给defparse()函数处理)
7 Spider收到通知后,处理接收的数据
8 Spider处理完数据后返回给引擎两个结果:一个是需要跟进的URL,另一个是获取到的item数据。
9 引擎将接收到的item数据交给管道处理,将需要跟进的URL交给调度器处理。重复循环直到获取完需要的全部信息。
创建项目:
1、创建一个新的Scrapy项目,cd到存储代码目录,运行命令:scrapy startproject tutorial
该命令将会创建tutorial 目录:包含的文件如下:
scrapy.cfg: 项目的配置文件
tutorial/: 该项目的python模块。之后您将在此加入代码。
tutorial/items.py: 项目中的item文件.
tutorial/pipelines.py: 项目中的pipelines文件.
tutorial/settings.py: 项目的设置文件.
tutorial/spiders/: 放置spider代码的目录.
编写第一个爬虫(Spider)
Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。
其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。
创建Spider,必须继承 scrapy.Spider 类, 且定义以下三个属性:
name: 用于区别Spider。 该名字必须是唯一的,不可以为不同的Spider设定相同的名字。
start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。后续的URL则从初始的URL获取到的数据中提取。
parse() :是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(responsedata),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。
import scrapy
class Sipder4399(scrapy.Spider):
name="kgc"
start_urls=[
"http://www.kgc.cn/teachingMaterial",
]
def parse(self,response):
lis=response.css("div.fix li")
for txt in lis:
print(txt.css("a::text").extract_first())
爬取:进入项目根目录,执行命令:scrapy crawl kgc
kgc为所编写的name