菜单

Pyspider抓取静态页面

2019年3月24日 - 注册免费送38元体验金

近来,笔者想爬一批音讯资源消息的情节。音信类型的网址很多,作者想看看有没有三个网页上能包括尽或然多的信息网站呢,于是就意识了下边这几个网页

http://news.hao123.com/wangzhi

图片 1

 

 这些页面包车型大巴上面还有地点音讯的分类

图片 2

壹 、爬取目的

按类型分的网址列表

按地方分的网址列表

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

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的值,并从第④个字符截取

4.3 能够在return中俯拾即是遍历,数组套数组
4.4 pyspider提供了成分选用救助作用,能够便捷选用元素,但不是那三个精确

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图