对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天在整理代码时,整理了一下之前自己学习爬虫的一些代码,今天上第2个简单的例子,python爬取CSDN博客首页所有文章。废话不多说,直接上代码讲解。
step1:打开需要爬取的网站:https://blog.csdn.net/
step2:查看源代码
找到我们要爬取的每一篇文章的链接在源代码中的具体位置,鼠标选择页面邮件,点击查看页面源代码即可,打开的页面如下图所示:
然后我们怎么才可以找到我要爬取的文章的链接呢,很容易,按住ctrl+F键进行搜索,随便搜索一篇文章,比如就搜索首页中的一篇名为“时间序列相关算法与分析步骤”的文章,然后快速定位出标题的位置,如下所示:
然后通过观察,我们发现href="http://blog.csdn.net/qq_33414271/article/details/79588126"对应的信息就是该文章的网址,这样就好办了,就用简单的正则匹配就可以了,下面开始进行爬取啦。
step3:代码很短,就直接上代码了啊!
import urllib.request import re url=‘https://blog.csdn.net/‘ #模拟浏览器 headers=("user-agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36") opener=urllib.request.build_opener() opener.addheaders=[headers]#添加报头 urllib.request.install_opener(opener)#设置opner全局化 #获取网页信息 data=urllib.request.urlopen(url).read().decode(‘utf-8‘) #设置正则 pat=‘<a strategy=.*?href="(.*?)" target="_blank">‘ #匹配正则 res=re.compile(pat).findall(data) #保存数据 for i in range(len(res)): try: file="F:/csdn/"+str(i+1)+‘.html‘ urllib.request.urlretrieve(res[i],file) print(‘第‘+str(i+1)+‘篇文章爬取成功!‘) except urllib.error.URLError as e: if hasattr(e,"code"): print(e.code) if hasattr(e,"reason"): print(e.reason)
爬取的结果如下: