首页 > 编程语言 > 详细

python之scrapy框架

时间:2021-04-24 20:29:01      阅读:21      评论:0      收藏:0      [点我收藏+]

Scrapy框架

第一板块:scrapy介绍、安装、基本使用

-什么是框架?

  -就是一个集成了很多功能并且具有很强通用性的一个项目模板。

 

-如何学习框架?

  -专门学习框架封装的各种功能的详细用法。

 

-什么是scrapy?

  -爬虫中封装好的一个明星框架。功能:高性能的持久化操作,异步的数据下载,高性能的数据解析,分布式。

 

-scrapy框架的基本使用

  -环境的安装:

    -mac or linux: pip install scrapy

    -windows:

      -下载twisted,下载地址为:

        http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

      -安装twisted:

        pip install Twisted-17.1.0-cp36-cp36m-win_amd64.whl

      -pip install pywin32

      -pip install scrapy

      测试:在终端里录入scrapy指令,没有报错即表示安装成功!

 

-创建一个工程:scrapy startproject xxxPro

-cd xxxPro

-spiders子目录中创建一个爬虫文件

  -scrapy genspider spiderName www.xxx.com

-执行工程:

  -scrapy crawl spiderName

 

scrapy的配置文件修改:

技术分享图片

 运行结果如下:

技术分享图片

 

在spiders文件夹中创建一个基于scrapy框架的爬虫文件后,对配置文件必要的设置如下:(UA伪装)

技术分享图片

 

 第二大板块:基于scrapy的数据解析

-创建一个scrapy工程的基本目录结构如下:

技术分享图片

 

 qiubai.py

 1 import scrapy
 2 
 3 
 4 class QiubaiSpider(scrapy.Spider):
 5     name = qiubai
 6     # allowed_domains = [‘www.xxx.com‘]
 7     start_urls = [https://www.qiushibaike.com/text/]
 8 
 9     def parse(self, response):
10         #解析:作者的名称+段子的内容
11        div_list = response.xpath(//div[@class="col1 old-style-col1"]/div)
12        # print(len(div_list))
13        num = 0
14        for div in div_list:
15            #xpath 返回的是列表,但是列表元素一定是Selector类型的对象
16            #extract可以将Selector对象中data参数存储的字符串提取出来
17            author = div.xpath(./div[1]/a[2]/h2/text())[0].extract()
18            #列表调用了extract之后,则表示将列表中每一个Selector对象中data对应的字符串提取了出来
19            content = div.xpath(./a[1]/div/span//text()).extract()
20            #将列表转化成字符串
21            content = ‘‘.join(content)
22            print("++++++++++++++++++++++++++++++++++++")
23            print(num,author,content)
24            print("++++++++++++++++++++++++++++++++++++")
25            num+=1

注意:

技术分享图片

 

 技术分享图片

 

-etract_first()操作前提条件是得保证是对列表长度为1的进行操作。

总结:

UA伪装、Robot协议、日志文件的设置都在settings.py即配置文件中;

规定在spiders子目录下创建scrapy爬虫;

项目运行方式为:scrapy crawl spiderName;

对于scrapy爬虫得到的response对象,进行xpath操作后,得到的对象不是一个etree对象而是一个Selector对象,那么要取得其data数据则只需将Selecor对象进行extract操作就行;

 

python之scrapy框架

原文:https://www.cnblogs.com/industrial-fd-2019/p/14697462.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!