欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python爬虫--07 Scrapy爬虫数据类型

程序员文章站 2022-07-10 13:57:57
...

1 Scrapy爬虫的使用步骤

步骤1:创建一个工程和Spider模板
步骤2:编写Spider
步骤3:编写Item Pipeline
步骤4:优化配置策略

2 Scrapy爬虫的数据类型

2.1 Request类

class scrapy.http.Request()
Request对象表示一个HTTP请求,由Spider生成,由Downloader执行
   属性或方法                |               说明
   .url                     |       Request对应的请求URL地址
   .method                  |       对应的请求方法,'GET' 'POST'等
   .headers                 |       字典类型风格的请求头
   .body                    |       请求内容主体,字符串类型
   .meta                    |       用户添加的扩展信息,在Scrapy内部模块间传递信息使用
   .copy()                  |       复制该请求

2.2 Response类

class scrapy.http.Response()
Response对象表示一个HTTP响应,由Downloader生成,由Spider处理
   属性或方法                |               说明
   .url                     |       Response对应的URL地址
   .status                  |       HTTP状态码,默认是200
   .headers                 |       Response对应的头部信息
   .body                    |       Response对应的内容信息,字符串类型
   .flags                   |       一组标记
   .request                 |       产生Response类型对应的Request对象
   .copy()                  |       复制该响应

2.3 Item类

class scrapy.item.Item()
Item对象表示一个从HTML页面中提取的信息内容,由Spider生成,由Item Pipeline处理
Item类似字典类型,可以按照字典类型操作

3 Scrapy爬虫提取信息的方法

Scrapy爬虫支持多种HTML信息提取方法:
• Beautiful Soup
• lxml
• re
• XPath Selector
• CSS Selector
    <HTML>.css('a::attr(href)').extract()
    CSS Selector由W3C组织维护并规范

4 运行报错

scrapy crawl demo报错

File "e:\program files (x86)\python\lib\site-packages\scrapy\extensions\telnet.py", line 12, in <module>
    from twisted.conch import manhole, telnet
  File "e:\program files (x86)\python\lib\site-packages\twisted\conch\manhole.py", line 241
    def addOutput(self, data, async=False):
                                  ^
SyntaxError: invalid syntax
解决方法:  e:\program files (x86)\python\lib\site-packages\twisted\conch\manhole.py中替换所有async-->async1