本篇文章主要介绍了Python之多线程爬虫抓取网页图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
目标
嗯,我们知道搜索或浏览网站时会有很多精美、漂亮的图片。
我们下载的时候,得鼠标一个个下载,而且还翻页。
那么,有没有一种方法,可以使用非人工方式自动识别并下载图片。美美哒。
那么请使用python语言,构建一个抓取和下载网页图片的爬虫。
当然为了提高效率,我们同时采用多线程并行方式。
思路分析
Python有很多的第三方库,可以帮助我们实现各种各样的功能。问题在于,我们弄清楚我们需要什么:
1)http请求库,根据网站地址可以获取网页源代码。甚至可以下载图片写入磁盘。
2)解析网页源代码,识别图片连接地址。比如正则表达式,或者简易的第三方库。
3)支持构建多线程或线程池。
4)如果可能,需要伪造成浏览器,或绕过网站校验。(嗯,网站有可能会防着爬虫 😉)
5)如果可能,也需要自动创建目录,随机数、日期时间等相关内容。
如此,我们开始搞事情。O(∩_∩)O~
环境配置
操作系统:windows 或 linux 皆可
Python版本:Python3.6 ( not Python 2.x 哦)
第三方库
urllib.request
threading 或者 concurrent.futures 多线程或线程池(python3.2+)
re 正则表达式内置模块
os 操作系统内置模块
编码过程
我们分解一下过程。完整源代码在博文最终提供。
伪装为浏览器
import urllib.request
# ------ 伪装为浏览器 ---
def makeOpener(head={
'Connection': 'Keep-Alive',
'Accept': 'text/html, application/xhtml+xml, */*',
'Accept-Language': 'zh-CN,zh;q=0.