今天接了乙個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...