python 爬虫实例_Python数据分析及可视化实例之爬虫源码(03)

0b13b5a5c2f26a081388f64996895870.png

系列文章总目录:

yeayee:Python数据分析及可视化实例目录​zhuanlan.zhihu.com
2350d418f92c7ea0f0f386885eb005b3.png

109af5d92a853fcf4689b29be4e6a04a.png

1.背景介绍

(1)话说今日头条在我乎挖走了‘三百勇士’,于是就想知道这些勇士中有木有练Py大法的,是不是真的勇士。本着我不入地狱,谁入地狱的精神,注册并体验了一下,我曹,这不就是微信公众号、快手、秒拍、斗鱼、陌陌、淘宝客网站的杂交嘛。

(2)搜索了一下,响应原来是Json,嚯嚯,Ajax我喜欢,只要找到路径直接Json.loads(),连BeautifulSoup都省了,更不用说Re神器了,快走起!

bf2292c1b7f239972542e0b8641500fd.png

别说,关键词联想还不错,那么就多体验几个有关于Py大法的关键词,初步看看。

bb3ebe8c5f1e31c914aa8bd5b930cce8.png

再拉近一点距离,竟然是瀑布流,下拉自动加载页面,经核实一个关键词就多下拉8页,每页20条数据;仔细算算,也就是1个关键词只能获取160条消息,那么意味着要采集更多的数据,只能发现更多的关键词。于是我采集一组关键词:

'''Python学习笔记
Python教程
Python开发
Python函数
Python
Python3
Python爬虫
Python基础
Python网络爬虫
Python基础教程
Python编程
Python实战
Python学习
Python公开课
python手机
python window
python类
python入门教程
python面试'''

b222926c09508c7781b6a4cc5a148118.png

(3)Ajax妖怪,哪里逃:逐条查看响应内容

d9123b9104bbcdfea5014f50ffd692a1.png

(4)有路径,有Json,Perfect。共采集文章1727篇,从评论数量看看头牌都有哪些?

fc0f0e5692ca5fac641659f88a2b2b83.png

手动看看评论,你们绝对猜不到,标题党占9成,符合头条的风格。

(5)有NLP基础的可以对评论进行情感分析(有NLP基础的还TMD看这篇破文章!)

好吧,POST自动评论,且听下回分析。。。

2.源码

# coding:utf-8
import requests
import json, time

# 本节采用请求头直接采集
# url = 'https://www.toutiao.com/search_content/?offset=0&format=json&keyword=python&autoload=true&count=20&cur_tab=1'
# https://www.toutiao.com/search_content/?offset=20&format=json&keyword=python&autoload=true&count=20&cur_tab=1
# page = 8*20  最大到offset160


pkeywords = '''Python学习笔记
Python教程
Python开发
Python函数
Python
Python3
Python爬虫
Python基础
Python网络爬虫
Python基础教程
Python编程
Python实战
Python学习
Python公开课
python手机
python window
python类
python入门教程
python面试'''.split('n')


# print(pkeywords)


def get_data(url):
    wbdata = requests.get(url).text
    data = json.loads(wbdata)
    news = data['data']
    for n in news:
        if 'title' in n:
            title = n['title']
            comments_count = n['comments_count']
            url = n['article_url']
            keyword = ''.join(n['keywords'].split(','))
            # print(url,'|',title,'|',keyword,'|',comments_count)
            line = url + '|' + title + '|' + keyword + '|' + str(comments_count) + 'n'
            print(line)
            f = open('keyds.txt', 'a', encoding='utf-8')  # TXT文本保存
            f.write(line)
            f.close()

if __name__ == '__main__':
    for kw in pkeywords:
        for i in range(9):
            url = 'https://www.toutiao.com/search_content/?offset=' + str(
                    i * 20) + '&format=json&keyword=' + kw + '&autoload=true&count=20&cur_tab=1'
            print(i, kw, url)
            try:
                get_data(url)
            except:
                print('爬虫掉坑里了,爬起来继续')
                pass

胶水语言博大精深,

本主只得一二为新人带路,

老鸟可去另一专栏:Python中文社区

新手可查阅历史目录:

yeayee:Python数据分析及可视化实例目录​zhuanlan.zhihu.com
2350d418f92c7ea0f0f386885eb005b3.png

847329750ec33099623a4fcf9cddbd4f.png

最后,别只收藏不关注哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值