python爬虫实战(一)--爬取知乎话题图片
2017-09-19 20:53
561 查看
原文链接python爬虫实战(一)–爬取知乎话题图片
知识准备:
1.python基础知识
2.urllib库使用
3.http基本知识
4.html/js基本知识。
环境准备:
1.linux
2.python3
话不多说,开始
用浏览器打开该链接。鼠标右键-查看源代码。可以看到,图片的url在img标签中,那么在爬取到该网页内容之后,可以使用正则表达式,获取图片的url,再根据url将图片下载下来,便大功告成了。
在linux下运行
将会在目的目录下发现下载好的图片。39 /home/spider/
“`
将会在目的目录下发现下载好的图片。
前言
在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫。知识准备:
1.python基础知识
2.urllib库使用
3.http基本知识
4.html/js基本知识。
环境准备:
1.linux
2.python3
话不多说,开始
爬取目标
本次爬取的目标是知乎话题下的图片。分析
以知乎话题你见过哪些谜之笑点的图片为例。用浏览器打开该链接。鼠标右键-查看源代码。可以看到,图片的url在img标签中,那么在爬取到该网页内容之后,可以使用正则表达式,获取图片的url,再根据url将图片下载下来,便大功告成了。
代码
#!/usr/bin/python3 #coding=utf-8 import urllib.request as request import urllib.parse as parse import string import sys import re import os import urllib.error as error ''' 获取url中的图片 url:链接地址 dirpath:保存路径 ''' def getUrlImage(url,dirpath): dldNum=0 data = request.urlopen(url).read() if not os.path.isdir(dirpath): os.makedirs(dirpath) page_data = data.decode('gbk','ignore') #获取img标签数据 page_image = re.compile('<img src=\"(.+?)\"') for image in page_image.findall(page_data): #匹配数据中的图片 pattern = re.compile(r'^https://.*.(jpg|png|gif|jpeg)$') if pattern.match(image): print (image) try: extension = GetFileNameAndExt(image) image_data = request.urlopen(image).read() image_path = dirpath+'/'+str(dldNum)+extension dldNum += 1 print(image_path) with open(image_path, 'wb') as image_file: image_file.write(image_data) image_file.close() except error.URLError as e: print('Download failed') ''' 获取文件名中的扩展名 ''' def GetFileNameAndExt(filename): (filepath,tempfilename) = os.path.split(filename); (shotname,extension) = os.path.splitext(tempfilename); return extension ''' 入口函数 带两个参数 ''' if __name__ == "__main__": if(len(sys.argv) < 2): print("usage:./download_spider.py url savePath") else: print("the url is "+str(sys.argv[1])) print("the save path is "+str(sys.argv[2])) url = sys.argv[1] savePath = sys.argv[2] getUrlImage(url,savePath)
运行
有两个参数,第一个参数是url,即话题的链接,第二个参数是所要保存图片的路径。在linux下运行
./getZhiHuImage.py https://www.zhihu.com/question/41432739 /home/spider/
将会在目的目录下发现下载好的图片。39 /home/spider/
“`
将会在目的目录下发现下载好的图片。
相关文章推荐
- python爬虫实战——图片自动下载器
- [python爬虫小实战2]根据用户输入关键词爬取今日头条图集,并批量下载图片
- python爬虫入门 实战(四)---爬“榜姐”话题微博及热门评论
- python初级实战系列教程《一、爬虫之爬取网页、图片、音视频》
- 知乎话题爬虫完美版(python)
- python Requests 知乎问题图片爬虫
- python爬虫如何爬知乎的话题?
- Python爬虫获取知乎图片
- Python 3实战爬虫之爬取京东图书的图片详解
- 爬虫实战---python图片验证码破解,PIL和安装
- python爬虫实战(1)抓取网页图片自动保存
- python3.x百度贴吧图片爬虫(附知乎图片爬虫)
- Python爬虫之知乎图片抓取
- 通过Python爬虫爬取知乎某个问题下的图片
- 【图文详解】python爬虫实战——5分钟做个图片自动下载器
- Python3 爬虫实战(二)——图片爬虫
- python爬虫实战之爬取知乎帖子
- Python爬虫设置代理IP爬取知乎图片
- Python爬虫 + 人脸检测 + 颜值检测 = 知乎高颜值图片抓取
- python爬虫实战 爬取天极图片