python - 采集 新浪新闻-国内-最新消息 转为xlsx
2017-09-16 13:19
1011 查看
# coding: utf-8 # In[63]: import requests from pyquery import PyQuery as pq response = requests.get(url='http://news.sina.com.cn/china/') response.encoding = 'utf-8' html = response.text doc = pq(html) news_list = [] for item in doc('.news-item').items(): news_url = item.find('h2 > a').attr('href') if news_url: news_list.append(get_article(news_url)) def get_article(news_url): response = requests.get(url=news_url) response.encoding = 'utf-8' html = response.text doc = pq(html) msg = {} msg['title'] = doc.find('#artibodyTitle').text() msg['content'] = ''.join(doc.find('#artibody > p').text().split()) msg['time'] = doc.find('#navtimeSource').text() msg['keyword'] = doc.find('.article-keywords > a').text() return msg news_list # In[64]: import pandas as pd df = pd.DataFrame(news_list) df.head() # In[65]: df['keyword'] = df['keyword'].map(lambda e : e.split()) df.head() # In[66]: df['time'].map(lambda e : e.split()).head() # In[67]: df['time'].str.extract('(\d+年\d+月\d+日\d+:\d+)\s+(\w+)').head() # In[68]: df[['datetime', 'from']] = df['time'].str.extract('(\d+年\d+月\d+日\d+:\d+)\s+(\w+)') df.head() # In[69]: df['datetime'] = pd.to_datetime(df['datetime'], format = '%Y年%m月%d日%H:%M') df['datetime'].head() # In[70]: df['datetime'].map(lambda e : (e.year, e.month, e.day)).head() # In[71]: del df['time'] df.head() # In[72]: df = df[['from', 'title', 'content', 'keyword', 'datetime']] # In[73]: df.to_excel('news.xlsx')
相关文章推荐
- python 爬取新浪国内新闻含获取js里的数据
- python2.7 爬虫初体验爬取新浪国内新闻_20161130
- Python之路__爬虫篇:新浪新闻爬取回顾(一)
- 爬取新浪国内新闻首页
- Python多篇新闻自动采集
- python3爬取新浪新闻文章内容代码
- 使用Python程序抓取新浪在国内的所有IP的教程
- Python之路__爬虫篇:新浪新闻爬取回顾(二)
- 第六课 Python新浪新闻爬虫最终整理总结
- python爬虫之获取新浪新闻信息
- Python 编写新浪新闻网络爬虫(学习整理)
- Python爬虫:抓取新浪新闻数据
- Python爬虫:新浪新闻详情页的数据抓取(函数版)
- 实例演示php采集新浪sina首页的新闻
- Python之路__爬虫篇:新浪新闻爬取回顾(四)
- python3爬虫-爬取新浪新闻首页所有新闻标题
- python3爬取新浪新闻内容
- 19Python爬虫--爬取新浪新闻标题并保存到数据库
- python爬取新浪新闻存储到excel
- 新浪新闻采集程序