python爬取新浪新闻

本文详细介绍了使用Python的urllib库爬取新浪新闻网站的方法,包括解析网页、抓取URL和下载页面到本地的过程。同时,文章展示了如何处理下载过程中的异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、这里提前解释说明:

urlretrieve(url, filename=None, reporthook=None, data=None)

参数filename指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该
回调,我们可以利用这个回调函数来显示当前的下载进度。
参数data指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers)
元组,filename 表示保存到本地的路径,header表示服务器的响应头

 1 #爬取新浪新闻
 2 import urllib.request
 3 import re 
 4 data=urllib.request.urlopen(“http://news.sina.com.cn/”).read()
 5 data2=data.decode(“utf-8”,”ignore”)
 6 #"ignore"忽略参数出现的错误
 7 pat='href="(http://news.sina.com.cn/.*?)">'
 8 allurl=re.compile(pat).findall(data2)
 9 for i in range(0,len(allurl)):
10     try:
11         print(""+str(i)+"次爬取")
12         thisurl=allurl[i]
13         file="F:/python/sinanews"+str(i)+".html"
14         urllib.request.urlretrieve(thisurl,file)
15         print("成功")
16     except urllib.error.URLError as e:
17         if hasattr(e,"code"):
18            print(e.code)
19         if hasattr(e,"reason"):
20            print(e.reason)

若有疑问 可联系博主进一步探讨python小知识

 

转载于:https://www.cnblogs.com/du1269038969/p/9652920.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值