python实战笔记一之爬取海贼王图

爬取目标网址:
http://op.hanhande.com/shtml/meitu.shtml

“python的强大在于库多”——yo的海贼宣言

工预善其事,必先利器。现实世界里我们大不必重复的造轮子,航海时代的每个威风凛凛地大海贼都是能够熟练地应用各种爬虫库的。

“掌握urllib2,让它为你打开大航海时代的大门吧”——某个大海贼说

urllib2模块定义了一些功能和类,这些功能和类有助于在复杂的世界中打开URL(主要是HTTP),包括基本和摘要认证,重定向,cookies等等。

如下4行代码就可在命令行打印首页html内容:
from urllib import request
request = request.urlopen('http://op.hanhande.com/shtml/meitu.shtml’)
var_html = request.read().decode('gbk’)
print(var_html)
python实战笔记一之爬取海贼王图_第1张图片
“Beautful Soup,让你欲罢不能的爬虫库”——某个不知名海贼曾言

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。
官网: https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

打开浏览器Debug工具,
    是包含当前页所有图片的标签。由BeautifulSoup文档可知,我们可通过这段代码缩小筛选范围。
python实战笔记一之爬取海贼王图_第2张图片
# 引用BeautifulSoup库
from bs4 import BeautifulSoup
# 解析html文本
soup = BeautifulSoup(content, "html.parser")
# 缩小爬取范围
ulCnt = soup.find("ul", class_="spic pic1")
# 打印
print(urlCnt)
这里用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。

os.path.splitext(path)
分割文件名与扩展名;默认返回(fname,fextension)元组
python实战笔记一之爬取海贼王图_第3张图片
使用urllib.urlretrieve(url,filename)时经常遇到下载到一半时,出现urllib.ContentTooShortError错误。这是因为文件下载不完全导致的错误。如果发现问题的是诸如图片和音乐文件这一类文件较小的问题,可以很容易使用以下方式解决。



你可能感兴趣的:(python)