資料結構化與儲存

2022-06-01 17:42:06 字數 3105 閱讀 9549

1. 將新聞的正文內容儲存到文字檔案。

newscontent=soup.select('

.show-content

')[0

].text

f=open('

news.txt

','w')

f.write(newscontent)

f=open('

news.txt

','r')

print(f.read())

3. 安裝pandas,用pandas.dataframe(newstotal),建立乙個dataframe物件df.

import

pandas

df=pandas.dataframe(newstotal)

4. 通過df將提取的資料儲存到csv或excel 檔案。

df.to_excel('

gzccnews.xlsx

')

2. 將新聞資料結構化為字典的列表:

5. 用pandas提供的函式和方法進行資料分析:

from datetime import

datetime

newsurl= '

'req = requests.get(newsurl) #

返回response物件

req.encoding= '

utf-8

'from bs4 import

beautifulsoup

soup = beautifulsoup(req.text, '

html.parser')

defgetclickcount(newsurl):

newid=re.search('

\_(.*).html

',newsurl).group(1).split('

/')[1]

clickurl='

'.format(newid)

return(int(requests.get(clickurl).text.split('

.html

')[-1].lstrip("

('").rstrip("

');"

)))def

writenewsdetail(content):

f=open('

gzccnews.txt

','a

',encoding='

utf-8')

f.write(content)

f.close()

defgetnewsdetail(newsurl):

resd=requests.get(newsurl)

resd.encoding='

utf-8

'soupd=beautifulsoup(resd.text,'

html.parser')

news={}

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')

if info.find('

**')>0:

news[

'source

']=info[info.find('

'):].split()[0].lstrip('')

else

: news[

'source

']='

none

'news[

'content

']=soupd.select('

.show-content

')[0].text.strip()

news[

'click

']=getclickcount(newsurl)

news[

'newsurl

']=newsurl

return

(news)

defgetlistpage(listpageurl):

res=requests.get(listpageurl)

res.encoding='

utf-8

'soup=beautifulsoup(res.text,'

html.parser')

newslist=

for news in soup.select('li'

):

if len(news.select('

.news-list-title

'))>0:

a=news.select('

a')[0].attrs['

href']

return

(newslist)

defgetpagen():

res=requests.get('

')res.encoding='

utf-8

'soupn=beautifulsoup(res.text,'

html.parser')

n=int(soupn.select('

.a1')[0].text.rstrip('條'

))

return(n//10+1)

newstotal=

firstpage='

'newstotal.extend(getlistpage(firstpage))

n=getpagen()

for i in range(n,n+1):

listpageurl='

{}.html

'.format(i)

newstotal.extend(getlistpage(listpageurl))

for news in

newstotal:

print(news)

資料結構化與儲存

1.將新聞的正文內容儲存到文字檔案。soup beautifulsoup res.text,html.parser content soup.select show content 0 text f open news.txt w encoding utf 8 f.write content f.c...

資料結構化與儲存

作業是 同學的,因為沒有對新聞資訊做提取,所有無法新增新聞資訊到字典。已練習pandas庫的相關使用方法,匯出excel檔案。ps 自己的 會盡快修改!import requests from bs4 import beautifulsoup from datetime import datetim...

資料結構化與儲存

1.將新聞的正文內容儲存到文字檔案。f open content.txt a encoding utf 8 f.write content f.close 2.將新聞資料結構化為字典的列表 獲取新聞詳情 defgetnewdetail url resd requests.get url resd.e...