作业描述:爬取http://blog.csdn.net/首页中的所有文章,每个文章单独生成一个本地网页后存到本地中。
作业难点在伪装浏览器。
代码如下:"""
Created on Sat Nov 26 14:17:13 2016
@author: FengYiz
"""
import urllib.request
import re
import urllib.error
url="http://blog.csdn.net/"
headers=("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
data=opener.open(url).read()
data=data.decode("utf-8","ignore")
pat='a href="https://ask.hellobi.com/(http://blog.csdn.net/.*?)"'
allurl=re.compile(pat).findall(data)
for i in range(0,len(allurl)):
try:
print("第"+str(i)+"次爬取")
thisurl=allurl[i]
file="C:/Users/FengYiz/Desktop/csdn/"+str(i)+".html"
urllib.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)
输出:
本地文件夹内容:
最后:慢慢地,python学的越来越有感觉了。希望能赶上进度吧~ 加油!