我们很多人可能每天都要浏览新闻,但是推送的新闻太少,需要刷很多的新闻客户端。今天就用Python大法来解决你的烦恼,让你一次看个够。。

基本思路

爬取新闻的方法有很多,可以通过解析网页爬取,也可以利用API爬取。利用网易的新闻API接口来爬取数据。通过访问接口,解析json数据,保存你关心想要的信息。

API:http://c.m.163.com/nc/article/headline/T1348647853363/0-100.html

观察数据信息

访问网易新闻的API,可以看到一大堆的新闻数据,并且数据类型跟字典类似。所以转换为json格式,方便提取。

\"\"

 代码

import requests
import json
url = \'http://c.m.163.com/nc/article/headline/T1348647853363/0-100.html\'
header = {
    \'User-Agent\': \'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)\',
    \'Connection\': \'keep - alive\',
    }
wbdata = requests.get(url,headers=header).text
data = json.loads(wbdata)
news = data[\'T1348647853363\']

news_total = []

for item in news:
    digest = item[\'digest\']
    mtime = item[\'mtime\']
      = item[\' \']
    source = item[\'source\']
    try:
        url = item[\'url\']
    except:
        url = \'\'
    newes_data ={
        \' \':  ,                #\'标题\'
        \'time\':mtime,                  #\'时间\'
        \'source\':source,              #\'来源\'
        \'digest\':digest,              #\'内容\'
        \'url\':url                     #链接\'
    }
    news_total.append(newes_data)

这里我们把爬取的数据以保存到本地excel文件需要引入pandas库

总的代码如下,保存在D:\\HLMJ\\Image\\news.xlsx中:

import requests
import json
import pandas
url = \'http://c.m.163.com/nc/article/headline/T1348647853363/0-100.html\'
header = {
    \'User-Agent\': \'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)\',
    \'Connection\': \'keep - alive\',
    }
wbdata = requests.get(url,headers=header).text
data = json.loads(wbdata)
news = data[\'T1348647853363\']

news_total = []

for item in news:
    digest = item[\'digest\']
    mtime = item[\'mtime\']
      = item[\' \']
    source = item[\'source\']
    try:
        url = item[\'url\']
    except:
        url = \'\'
    newes_data ={
        \' \':  ,                #\'标题\'
        \'time\':mtime,                  #\'时间\'
        \'source\':source,              #\'来源\'
        \'digest\':digest,              #\'内容\'
        \'url\':url                     #链接\'
    }
    news_total.append(newes_data)
df = pandas.Data (news_total,columns = [\' \', \'time\', \'source\',\'digest\',\'url\'])
df.to_excel(\"D:\\\\HLMJ\\\\Image\\\\news.xlsx\")

总结

在网上搜索一下,可以发现很多网站都有自己的接口,像bilibili等,我这里这是选取了其中的一个,有兴趣可以自己去试一下其他的。当然也可以设计一个定时任务,让这个程序每天定时运行起来,这样子就可以,很方便的享受新鲜出炉的新闻啦。。

 

 

 

 

收藏 打印