推广 热搜: page  音视频  使用  个数  搜索引擎  选择  企业  父亲  百度  可以 

Python分布式爬虫详解(二)_python的socket编程和分布式爬虫有什么区别

   日期:2025-02-01     作者:o3bqg    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/21086.html
核心提示:首先,新建项目:1、定义爬取字段2、定义Rule规则 查看网页源码发现,电影链接为的形式,但是我们只需

首先,新建项目

 

1、定义爬取字段

 

2、定义Rule规则

查看网页源码发现,电影链接为的形式,但是我们只需要类目中的电影而不需要推荐的电影

所以

 

3、定义提取影片信息规则

观察网页源码,发现页面结构并不是统一的

有的信息在p标签中包裹,但是也有一些信息在div标签中。而且,由于主演人数不同,标签个数也不确定。所以,用xpath进行提取不是那么的方便了。这种情况就需要选用正则表达式来进行筛选。

观察网页编码,为

有些小众的电影并没有评分。

所以,筛选规则为

 

经测试发现,网站的迅雷下载链接是用js动态生成的。这就要用到selenium了。

 

最后,pipelines中保存数据

 

运行爬虫,得到第一页的30条数据

二、修改项目为RedisCrawlSpider爬虫

1、首先修改爬虫文件

① RedisCrawlSpider修改很简单,首先需要引入RedisCrawlSpider

 

② 将父类中继承的改为继承

 

③ 因为slaver端要从redis数据库中获取爬取的链接信息,所以去掉 和 ,并添加

 

④ 增加方法,动态获取,[理论上要加这个,但是实测加了爬取的时候链接都被过滤了,所以我没加,暂时没发现有什么影响]

 

2、修改setting文件

① 首先要指定redis数据库的连接参数

 

② 指定使用的调度器

 

③ 指定使用的去重

 

④ 指定排序爬取地址时使用的队列

 

⑤ 设置断点续传,也就是不清理redis queues

 

⑥ 默认情况下,只记录第一个重复请求。将设置为会记录所有重复的请求。

 

⑦ 配置将写入为  的redis的list中,供后面的分布式处理item

 

3、增加爬虫信息字段(可选

由于会有多个slaver端,所以可加一个爬虫名字的字段和时间字段来区分是哪个爬虫在什么时间爬到的信息。

① item中增加字段

 

② pipelines中新增类

本文地址:http://ww.kub2b.com/news/21086.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号