Python 對新聞的爬取

2021-10-07 15:29:39 字數 2847 閱讀 8782

今天接了乙個python小指令碼,發來一起分享。

要求:

廢話不說,直接上**:

import os

import requests

from lxml import etree

from bs4 import beautifulsoup

import re

import urllib.request

# 獲取原始碼

defgethtml

(url)

: a = urllib.request.urlopen(url)

# 開啟指定**

html = a.read(

)# 讀取網頁原始碼

html = html.decode(

"utf-8"

)# 解碼為unicode碼

return

str(html)

#去除html標籤

defremotehtmltag

(html)

: soup = beautifulsoup(html,

'html.parser'

)return

str(soup.get_text())

# 獲取原始碼

defget_url

(url)

: response = requests.get(url)

response.encoding =

'utf-8'

html = etree.html(response.text)

return html

# 獲取全部國內新聞

defallnews

(url)

: html = get_url(url)

name = html.xpath(

'//*[@id="rank-deflist"]/div/div[2]/div/h3/a/text()'

)# 新聞名稱

href = html.xpath(

'//*[@id="rank-deflist"]/div/div[2]/div/h3/a/@href'

)# 對應的新聞鏈結

for num in

range

(len

(name)):

if(num<50)

: new(num,href[num]

,name[num]

)else

:break

# 單個新聞內容(位址,新聞名稱)

defnew

(index,url, header)

:# index 檔名稱

# print(gethtml(url)) #單個新聞原始碼

# print(remotehtmltag(gethtml(url)))#單個新聞內容(去除html標籤)

# writenewsrc(index,gethtml(url))

writenewtxt(index, header, remotehtmltag(gethtml(url)))

print

("完成"

+header+

"的爬取"

)#列印src

defwritenewsrc

(index, html):if

not os.path.exists(

"src"):

os.makedirs(

"src"

) filename =

"src"

+"//"

+str

(index+1)

+".txt"

ifnot os.path.exists(filename)

: f =

open

(filename,

'a', encoding=

'utf-8'

) f.write(html)

f.close(

)print

("成功列印原始碼,目錄:"

+filename)

#列印txt

defwritenewtxt

(index,header,content):if

not os.path.exists(

"txt"):

os.makedirs(

"txt"

) filename =

"txt"

+"//"

+str

(index+1)

+".txt"

removecontent=

''.join(content.split(

"\n"))

ifnot os.path.exists(filename)

: f =

open

(filename,

'a', encoding=

'utf-8'

) f.write(

str(header)

) f.write(

"\n\n"

) f.write(removecontent)

f.close(

)print

("成功列印檔案,目錄:"

+ filename )

#if __name__ ==

'__main__'

: url =

''; allnews(url)

特別鳴謝:

python爬取學校新聞

這是我做的第乙個python爬蟲專案,在這裡與大家分享出來 目標 下面展示一下我的 import requests from bs4 import beautifulsoup sessions requests.session i 1 對應第1頁資訊 page str i if i 1 newsma...

爬取網易新聞

爬取網易新聞 在本小節的內容中呢,筆者將會給大家講述如何去過濾我們所不需要的內容。下面的例子,是本人在爬取網易新聞時,遇到的乙個小問題,在定位元素之後,進行列印的時候,出現了部分內容無法正常解析。筆者也是進行了很長時間的嘗試,請教了很多人,才得到的三種方法。我們一起來看。通過寫入檔案的方法過濾元素 ...

爬取新聞列表

獲取單條新聞的 標題 鏈結 時間 內容 點選次數,幷包裝成乙個函式。獲取乙個新聞列表頁的所有新聞的上述詳情,幷包裝成乙個函式。獲取所有新聞列表頁的 呼叫上述函式。完成所有校園新聞的爬取工作。完成自己所選其他主題相應資料的爬取工作。import requests import refrom bs4 i...