菜单

Pyspider抓取静态页面

2018年11月20日 - 注册免费送38元体验金

近些年,我想爬一批判新闻资讯的始末。新闻类的网址很多,我怀念看发生没发生一个网页上能包罗尽可能多之新闻网站呢,于是就发现了脚这个网页

http://news.hao123.com/wangzhi

注册免费送38元体验金 1

 

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

注册免费送38元体验金 2

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()]

运作结果

注册免费送38元体验金 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()]

运作结果

注册免费送38元体验金 4

4、知识点小结

4.1 __init__()方法也对象创建好后的初始化方法,自动执行,可以起定义有大局属性
4.2 “city” : x.attr(‘id’)[5:]

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

4.3 可以在return中不胜枚举遍历,数组套数组注册免费送38元体验金
4.4 pyspider提供了元素选择救助意义,可以很快选取元素,但无是充分标准

相关文章

标签:

发表评论

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

网站地图xml地图