一:需求與思路
需求:將新浪新聞的首頁的所有新聞爬取到本地 http://news.sina.com.cn/
思路:首先爬首頁,通過正則表達式獲取所有的新聞鏈接,然後依次爬取新聞,並存儲到本地。
二:實戰
運行程序
查看爬取結果:
三:綜上代碼:
from urllib import request
import re
data=request.urlopen("http://news.sina.com.cn/").read()
data2=data.decode("utf-8","ignore")
pat='href="(http://news.sina.com.cn/.*?)"'
allurl=re.compile(pat).findall(data2)
for i in range(0,len(allurl)):
try:
print("這是第"+str(i)+"次爬取")
thisurl=allurl[i]file="G:/BaiduDownload/python網絡爬蟲/sinanews/"+str(i)+".html"
request.urlretrieve(thisurl,file)
print("成功")
except urllib.error.URLError as e:if hasattr(e,"code"):
print(e.code)
if hasattr(e,"reason"):
print(e.reason)