一、新聞爬蟲需求分析
二、實現思路
三、專案**實現
1.首先解析網頁,檢視各條新聞儲存位置
2.通過正規表示式獲取新聞鏈結,依次爬取各新聞並儲存到本地
#正規表示式,寫出每條新聞對應的鏈結
# -*- coding: utf-8 -*-
import urllib.request
import re
data=urllib.request.urlopen("").read()
#讀取網頁內容
data2=data.decode("utf-8","ignore")
#有很多情況utf-8或者gbk會出現解碼失敗,更換不是解決辦法,加上ignore第二個引數可忽視基本可以永久性解決問題
pat='href="(">'
allurl=re.compile(pat).findall(data2)
#從data2中匹配出所有是特定**的**
for i in range(0,len(allurl)):#for迴圈進行遍歷
#異常處理,防止系統崩潰,不然程式遇到異常會終止自動結束
try:
print("第"+str(i)+"次爬取")
thisurl=allurl[i]
file="c:/users/administrator/desktop/urllib/sinanews"+str(i)+".html"
#儲存到本地檔案
urllib.request.urlretrieve(thisurl,file)
print("爬取成功")
except urllib.error.urlerror as e:
#if 語句 判斷是否有狀態碼
if hasattr(e,"code"):
print(e.code)
if hasattr(e,"reason"):
print(e.reason)
**採取了異常處理,增強了程式的健壯性,防止程式因爬取到某條新聞鏈結產生異常跳出系統,try....except,假設產生異常輸出提示語,自動進入下次迴圈.
爬取新浪網頁
唯一性的用id表示,id前面需要加 例如 使用select 找出所有id為title 的元素 alink soup.select title print alink print alink.text 有相同的用class表示,class前面需要加.例如 使用select 找出所有class為link...
獲取新浪網的鏈結資訊
sgmllib.py 包含乙個重要的類 sgmlparser。sgmlparser 將 html 分解成有用的片段,比如開始標記和結束標記。一旦它成功地分解出某個資料為乙個有用的片段,它會根據 所發現的資料,呼叫乙個自身內部的方法。為了使用這個分析器,您需要子類化 sgml parser類,並且覆蓋...
python爬取搜狐網的新聞
1 import requests 2from bs4 import beautifulsoup3 4 newsurl 5 用get方法進行網頁獲取 6 res requests.get newsurl 7 用utf 8的編碼方式 8 res.encoding utf 8 9 獲取網頁的內容,並用h...