博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构化与保存
阅读量:6985 次
发布时间:2019-06-27

本文共 2115 字,大约阅读时间需要 7 分钟。

 

1、结构化

  • 单条新闻的详情字典:news
  • 一个列表页所有单条新闻汇总列表:newsls.append(news)
  • 所有列表页的所有新闻汇总列表:newstotal.extend(newsls)

2、转换成pandas的数据结构DataFrame

3、从DataFrame保存到excel

4、从DataFrame保存到sqlite3数据库

import requestsfrom bs4 import BeautifulSoupfrom datetime import datetimeimport reimport pandasimport sqlite3def getclick(url):    m = re.search(r'_(.*).html',url)    newsid = m.group(1)[5:]    clickurl = 'http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(newsid)    resc = requests.get(clickurl).text    r = re.search(r"hits(.*)",resc).group(1)    click = r.lstrip("').html('").rstrip("');")    return(int(click))def getdetail(url):    resd = requests.get(url)    resd.encoding='ute-8'    soupd = BeautifulSoup(resd.text,'html.parser')    news = {}    news['url'] = url    news['title'] = soupd.select('.show-title')[0].text    info = soupd.select('.show-info')[0].text    news['dt'] = datetime.strptime(info.lstrip('发布时间:')[0:19],'%Y-%m-%d %H:%M:%S')    news['source'] = re.search('来源:(.*)点击',info).group(1).strip()    #news['content'] = soupd.select('.show-content')[0].text.strip()    news['click']=getclick(url)    return(news)def onepage(pageurl):    res = requests.get(pageurl)    res.encoding = 'utf-8'    soup = BeautifulSoup(res.text,'html.parser')    newsls = []    for news in soup.select('li'):        if len(news.select('.news-list-title'))>0:            newsls.append(getdetail(news.select('a')[0]['href']))    return(newsls)print(onepage('http://news.gzcc.cn/html/xiaoyuanxinwen/'))'''newstotal = []gzccurl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/'newstotal.extend(onepage(gzccurl))res = requests.get(gzccurl)res.encoding='utf-8'soup = BeautifulSoup(res.text,'html.parser')n = int(soup.select('.a1')[0].text.rstrip('条'))pages=n//10+1for i in range(2,3):    listurl='http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i)    newstotal.extend(onepage(listurl))#print(len(newstotal))df = pandas.DataFrame(newstotal)#print(df.head())#print(df['title'])df.to_excel('gzccmews.xlsx')with sqlite3.connect('gzccnewsdb.sqlite') as db:    df.to_sql('gzccnewsdb',con=db)'''

 

 

 

转载于:https://www.cnblogs.com/gzw2017/p/7691253.html

你可能感兴趣的文章
(原)InsightFace及其mxnet代码
查看>>
OpenCV学习:实现简单的图像叠加
查看>>
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
查看>>
Linux内核OOM机制的详细分析(转)
查看>>
java.io包的总体框架图(转)
查看>>
MVC结构
查看>>
隐藏字
查看>>
js将long日期格式转换为标准日期格式
查看>>
Rafy 领域实体框架演示(4) - 使用本地文件型数据库 SQLCE 绿色部署
查看>>
2014第11周日
查看>>
MySQL 指定数据库字符集的 3 种方法。
查看>>
rabbitmq 介绍
查看>>
Django比较相等或者不相等的模板语法ifequal / ifnotequal
查看>>
OpenCV中phase函数计算方向场
查看>>
Rafy 框架 - 幽灵插件(假删除)
查看>>
JAVA之Mybatis基础入门二 -- 新增、更新、删除
查看>>
java获取数据库的列名,类型等信息
查看>>
专治选择困难症:Mate 10 Pro和P20 Pro之间如何选?
查看>>
瑞幸咖啡将冲刺上半年上市:叫板星巴克 已任命首席财务官
查看>>
央视主持人张羽加盟今日头条母公司字节跳动 出任副总裁
查看>>