新闻爬虫需求及实现思路:
需求: 将新浪新闻首页(http://news.sina.com.cn/)所有新闻都爬到本地
思路:先爬首页,通过正则表达式获取所有新闻链接,然后依次爬各新闻,并存储到本地
编码出现错误的话:
data=data.decode("utf-8","ignore")
import re
import urllib.request
data=urllib.request.urlopen("http://news.sina.com.cn/").read()
data=data.decode("utf-8","ignore")
print(len(data))
pat='href="(http://news.sina.com.cn/.*?)">'
allurl=re.compile(pat).findall(data)
print("共有记录: "+str(len(allurl)))
for i in range(0,len(allurl)):
try:
print("第"+str(i)+"次爬取")
thisurl=allurl[i]
file=r"C:\Users\Mr.Ma\Desktop\URL\\" +str(i)+".html"
urllib.request.urlretrieve(thisurl,file)
print("----成功------")
except urllib.error.HTTPError as e:
if hasattr(e,"code"):
print(e.code)
if hasattr(e,"reason"):
print(e.reason)