Python: 实验爬取虎扑篮球图片
admin
2023-07-30 21:15:49
0

编程确实是一个锻炼逻辑思维最有效的工具之一,之前自学Python。总是陷入一个怪圈:看入门数据–一段时间不用忘记了–继续看入门书籍。书是看了很多,编程技术却没有提高。

后来看了一本书,里面有些观点让我茅塞顿开。

做任何事情一定有在短期内简单可行的办法。学习不应该是苦差事,而应该是快乐的,重要的是找到适合自己的学习方法

在汉语中,掌握常见的1500-2000个字就能看懂80%的文字。在编程中,同样有着最核心的关键知识。先用这些关键的知识构建你的知识体系会让你学习效率加速,这是比一开始就钻到各种细枝末节里面更好的学习方式。

学习编程是为了真正做出点东西来。先掌握项目所需的最少必要知识,然后把热情和精力投入到搭建真实项目中,而不是死磕半年的基础知识,直到把所有兴趣都耗竭了也没做出什么像样的东西。

初学者经常会遇到的困惑是,看书上或是听课都懂,但还是不明白要怎么编程。这是因为缺乏足够多的实践。

思维方式改变之后,就是付诸行动了。最近一直在找练手的小项目来磨炼编程技术。首先最让我感兴趣的就是Python爬虫。所以最近一直去爬各种网站的图片。

本文要讲的是如何爬取虎扑篮球图片。

为简单起见,先从单个网页的一个图片说起。后期将进行封装,以提高可用性。

创建文件保存目录

# Create folder for store picture
sub_folder = os.path.join(os.getcwd(), \"hupupic\")
if not os.path.exists(sub_folder):
    os.mkdir(sub_folder)
# os.chdir(sub_folder)

设置Proxy

# Set proxy
proxy_support = urllib2.ProxyHandler({\"http\":\"http://your_proxy:8080/\"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)

解析目标网页,得到图片真实地址

sample_url = \'http://photo.hupu.com/nba/p29556-1.html\'
req = urllib2.Request(url=sample_url)
resp = urllib2.urlopen(req)
html = resp.read()

start = html.find(r\'
\') end = html.find(r\'
\') content = html[start:end] div_pat = r\'(.*?)<\\/div>\' div_m = re.findall(div_pat, content, re.S|re.M) # print div_m[2] link_list = re.findall(r\"(?<=href=\\\").+?(?=\\\")|(?<=href=\\\').+?(?=\\\')\", div_m[2]) pic_url = link_list[0]

保存到电脑

file_path = sub_folder
file_name = pic_url.split(\"/\")[-1]
print file_name
fname = file_path + \"\\\\\" + file_name
f = urllib2.urlopen(pic_url)
with open(fname, \'wb\') as img_file:
    img_file.write(f.read())

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...