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.
importpandas
df=pandas.dataframe(newstotal)
4. 通過df將提取的資料儲存到csv或excel 檔案。
df.to_excel('gzccnews.xlsx
')
2. 將新聞資料結構化為字典的列表:
5. 用pandas提供的函式和方法進行資料分析:
from datetime importdatetime
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...