python爬虫之scrapy框架(二)————scrapy框架的实际运用

一、使用Scrapy框架进行编程

1、创建爬虫:

       Scrapy genspider 爬虫名 目标网站的域名

2、爬虫的主体函数:

3、运行爬虫:

       运行命令:scrapy crawl 爬虫名称

 

二、Scrapy Selectors的表达式机制:

1、Scrapy Selectors表达式机制基于xpath和CSS

2、Scrapy Selectors的四个基本方法:

       (1)xpath():传入xpath表达式,返回该表达式所对应的所有节点的selector list列表。

       (2)css():传入CSS表达式,返回该表达式所对应的所有节点的selector list列表。

       (3)extract():序列化该节点为unicode字符串并返回list。

       (4)re():根据传入的正则表达式对数据进行提取,返回unicode字符串list列表。

3、Selector选择器的使用方法:

       (1)语法:

       (2)返回结果:

 

三、Scrapy框架将数据存储到items结构中

1、确认爬取到的数据

       用css()函数获取response对象中所需要的内容:

       输出的结果:

2、在items.py文件的BaiduspiderItem()函数中加入想要存储的数据

3、在爬虫主文件中声明要在items中加入的数据

       导入items.py文件对应的BaiduspiderItem()函数:

       声明要在items中加入的数据:

 

四、Scrapy框架将数据存储文件中

1、在items.py文件对应的BaiduspiderItem()函数中返回需要的参数

       创建__str__函数,将本函数中需要存储在文件中的参数返回:

2、在pipelines.py文件中导入items.py文件对应的BaiduspiderItem()函数

3、通过isinstance()函数来判断从items.py中得到的参数item是否为BaiduspiderItem类型。

使用__str__()函数将需要存储的数据转换为字符串型

最后通过open的方法写入文件中

4、在爬虫主文件中通过yield返回所有的item

5、在爬虫的setting文件中声明pipeline的优先级

 

七、运用Charles抓取当前发送的请求进行伪装

1、正常用Scrapy访问网站时可以发现User-Agent无法进行伪装:

2、设置User-Agent伪装自己:

       (1)在middlewares.py中引入UserAgentMiddleware包:

 

(2)在middlewares.py中创建一个BaiduUserAgentmiddleware类,并在其中定义处理请求的方法process_request,将请求头部的headers属性的User-Agent参数修改成浏览器访问时所使用的User-Agent:

(3)在爬虫的setting文件中声明UserAgent中间件的优先级:

(4)再次用Scrapy访问网站时可以发现User-Agent已经进行了伪装:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值