您的位置:首页 > 编程语言 > Python开发

python3[爬虫实战] 爬虫之scrapy爬取传智播客(我的奋斗我的路)

2017-08-11 00:40 295 查看

我的奋斗我的路

这里爬取的是传智播客大型学员征文活动,是一个个屌丝逆袭的成功故事

这次主要爬取的是
http://fendou.itcast.cn/article


下面的文章 包括:

1 目前排行

2 文章名称

3 作者

4 票数

5 支持Ta

6 查看

刚刚看了一下,点赞排行版,到最后的一共是144文章,难怪我搞个for循环60,到14的时候都已经不行了。可能是真的文章数量太少了。这里爬取的网站也是用的一部ajax异步json数据把,对前端了解的也不是很多,只是懂一些这些,不喜欢的勿喷。

scrapy 爬取json数据也是很简单,直接在parse方法中解析一下便好。

贴上代码:

# -*- coding: utf-8 -*-
# @Time    : 2017/8/10 22:19
# @Author  : 蛇崽
# @Email   : 17193337679@163.com
# @File    : BokeFightingMain.py  传智博客主页最新投稿文章
import scrapy
import json
# from chuanzhibokemyfendou.chuanzhibokemyfendou.items import BokeFighting
f = open('传智排行.txt', 'a',encoding='utf-8')

class BokeFightingMain(scrapy.Spider):

name = 'bokemain'

allowed_domains = ['fendou.itcast.cn']

start_urls = ['http://fendou.itcast.cn/Article/newpaihang.html?offset={}'.format(n) for n in range(1,20)]

def parse(self, response):
root_list = json.loads(response.body_as_unicode())
for info in root_list:
# Boke = BokeFighting()
Boke = []
print(info)
# 挑战到详情页用的aid
# Boke['titleAid'] = info['aid']  if 'aid' in info else ''
titleAid= info['aid']  if 'aid' in info else ''
f.write(str(titleAid))
# 作者
# Boke['nickname'] = info['nickname']  if 'nickname' in info else ''
nickname= info['nickname']  if 'nickname' in info else ''
# 文章名称
# Boke['title'] = info['title']  if 'title' in info else ''
title = info['title']  if 'title' in info else ''
# 票数
# Boke['vote'] = info['vote']  if 'vote' in info else ''
vote = info['vote']  if 'vote' in info else ''
# 发表时间戳
# Boke['adddate'] = info['adddate']  if 'adddate' in info else ''
adddate = info['adddate']  if 'adddate' in info else ''
# 是否点过赞(暂且这样考虑)
# Boke['stau'] = info['stau']  if 'stau' in info else ''
stau = info['stau']  if 'stau' in info else ''
print('*'*20)
print(str(adddate))
# yield
f.close()


对scrapy掌握的不是很好,那个items 让我搞了又搞,真的是搞懵逼了,因为新开的一个project,一直导入报错,no moudle named ‘xxx’ 蛋疼ing,这里cookie也没有用,成功爬取过5+左右就爬不动了。

因为有个好朋友也在里面写了一篇文章,想给他刷点赞, 但是感觉现在自己的技能还在一个入门阶段,只会一些简单的爬取,类似到了代理池,cookie,模拟登陆就犯愁了,最近一直没有时间很系统的学习一下,觉着自己最近的生活很乱,996,nngt。还没加班费!

这里爬取的json串很容易解析, 不像上篇微博似的,跟吃药似的。放个链接比对一下:

http://blog.csdn.net/xudailong_blog/article/details/76945566

这里的adddate 为时间戳,转一下就是正常的时间了,titleAid:主要是跳转到详情页里面的拼接的ID:

附上一条详情页的跳转链接:http://fendou.itcast.cn/Article/ajaxlook.html?aid=296

是不是很酷,但是!!! 我觉得文章还是要好好看一下,当你心情低落想要放弃的时候,可以看卡上面的鸡汤文章,这些都是他们的亲身经历,没有丝毫的半点夸大, 不像类似简书,知乎上的文章吧,一些段子手靠博取眼球,夸大,夸得没基地。

话说:说到程序员,确实,耿直的多。多多少少都是些有着雄心壮志,壮志凌云,楞得一脸懵逼,面对女生,嘴都没了的,在QQ群飙车厉害的,也有些一些专心技术的,像我吧?可能搞技术也是不大好,总得多多少少自己学一些,活到老学到老,毕竟靠这个吃饭的,

问题: 困扰了自己蛮久的问题

1 对于一些ajax 加载json的数据是使用html标签上的解析还是直接使用json串解析得了。

2 代理IP的实践!!起码自己得依葫芦画瓢的实践一次,虽然我现在暂时不懂代理IP到底是干什么的,

3 cookie池的使用,

多看一些博客大牛的文章,适当的时候要看一下视频,尽管看视频花一些时间,但很多就是从视频里面懂得快,有些博客也是写的一脸茫然,无处问人。

end….
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐