博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyspider抓取静态页面
阅读量:6533 次
发布时间:2019-06-24

本文共 1799 字,大约阅读时间需要 5 分钟。

近期,我想爬一批新闻资讯的内容。新闻类型的网址很多,我想看看有没有一个网页上能包罗尽可能多的新闻网站呢,于是就发现了下面这个网页

http://news.hao123.com/wangzhi

 

 这个页面的下边还有地方新闻的分类

1、爬取目标

按类型分的网址列表

按地方分的网址列表

2、按类型

1 #!/usr/bin/env python 2 # -*- encoding: utf-8 -*- 3 # Created on 2018-01-02 15:44:54 4 # Project: financeNews 5  6 from pyspider.libs.base_handler import * 7  8  9 class Handler(BaseHandler):10     crawl_config = {11     }12 13     def __init__(self):14         self.url = 'http://news.hao123.com/wangzhi'15     16     @every(minutes=24 * 60)17     def on_start(self):18         self.crawl(self.url,callback=self.index_page)19 20     @config(age=10 * 24 * 60 * 60)21     def index_page(self, response):22             23         return [{24             "group" : x('.content-title').text(),25             "websites" : [a.text() for a in x('li a').items()]26         } for x in response.doc('.mod-content').items()]

运行结果

3、按地方

1 #!/usr/bin/env python 2 # -*- encoding: utf-8 -*- 3 # Created on 2018-01-02 15:44:54 4 # Project: financeNews 5  6 from pyspider.libs.base_handler import * 7  8  9 class Handler(BaseHandler):10     crawl_config = {11     }12 13     def __init__(self):14         self.url = 'http://news.hao123.com/wangzhi'15     16     @every(minutes=24 * 60)17     def on_start(self):18         self.crawl(self.url,callback=self.index_page)19 20     @config(age=10 * 24 * 60 * 60)21     def index_page(self, response):22             23         return [{24             "city" : x.attr('id')[5:],25             "websites" : [a.text() for a in x('li a').items()]26         } for x in response.doc('.page').items()]

运行结果

4、知识点小结

4.1 __init__()方法为对象创建完成后的初始化方法,自动执行,可以自定义一些全局属性
4.2 "city" : x.attr('id')[5:]

取属性id的值,并从第6个字符截取

4.3 可以在return中多级遍历,数组套数组
4.4 pyspider提供了元素选择帮助功能,可以快捷选取元素,但不是非常精确

转载于:https://www.cnblogs.com/wangzhisdu/p/8182489.html

你可能感兴趣的文章
自定义类加载器
查看>>
MySQL数据库事务各隔离级别加锁情况--Repeatable Read && MVCC(转)
查看>>
C++构造函数例程
查看>>
把某一列值转换为逗号分隔字符串
查看>>
iOS中--NSArray调用方法详解 (李洪强)
查看>>
MySQL在导入的时候遇到的错误
查看>>
LINUX 常用命令整理
查看>>
德国禁止Facebook利用WhatsApp用户信息:没法律基础
查看>>
“灾备全生态”全揭秘
查看>>
CSS盒子模型
查看>>
Zeppelin Prefix not found.
查看>>
ubuntu中eclipse安装svn插件问题
查看>>
linux 的网络设置
查看>>
首届“欧亚杯”象翻棋全国团体邀请赛圆满收评!
查看>>
编译tomcat
查看>>
MySql中is NULL、ISNULL()和IFNULL()运行速度的比较
查看>>
oracle-xe手工创建数据库
查看>>
Cisco交换机 链路聚合
查看>>
我的友情链接
查看>>
UG中卸载被占用的DLL
查看>>