【Python3 爬虫】13_爬取博客园首页所有文章
首先,我们确定博客园首页地址为:https://www.cnblogs.com/
我们打开可以看到有各种各样的文章在首页,如下图:
我们以上图标记的文章为例子吧!打开网页源码,搜索Docker,搜索结果如下图:
从上图后红色标记部分可以看出,我们使用正则表达式即可匹配该网址,我们匹配到该网址之后,将该网址对应的内容下载到到底进行存储。
实现代码
import urllib.request import re """ 爬取cnblogs首页所有的文章 """ url = "http://www.cnblogs.com/" headers = ("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0") opener = urllib.request.build_opener() opener.addheaders = [headers] urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode("utf-8","ignore") #此处的(.*?)是匹配href后所有内容,直到”结束 rule = '<h3><a class="titlelnk" href="(.*?)"' result = re.compile(rule).findall(data) for i in range(0,len(result)): file = "D:/source/"+str(i)+".html" urllib.request.urlretrieve(result[i],filename=file) print("第"+str(i+1)+"次成功")
运行结果:
第1次成功
第2次成功
第3次成功
第4次成功
第5次成功
第6次成功
第7次成功
第8次成功
第9次成功
第10次成功
第11次成功
第12次成功
第13次成功
第14次成功
第15次成功
第16次成功
第17次成功
第18次成功
第19次成功
第20次成功
[Finished in 9.3s]
爬取完成后,我们可以在相应路径下看到爬取后的内容
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!