Python抓取网页中的图片到本地

今天在网上找了个从网页中通过图片URL,抓取图片并保存到本地的例子:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3
 4 #   Author:    xixihuang
 5 #   Date  :     2016/08/28 10:12 AM
 6 #   Desc:       抓取网页,获取图片URL,抓取图片内容并保存到本地。
 7
 8 import os
 9 import uuid
10 import urllib2
11 import cookielib
12 ‘‘‘获取文件后缀名‘‘‘
13 def get_file_extension(file):
14   return os.path.splitext(file)[1]
15 ‘‘‘創建文件目录,并返回该目录‘‘‘
16 def mkdir(path):
17   # 去除左右两边的空格
18   path=path.strip()
19   # 去除尾部 \符号
20   path=path.rstrip("\\")
21   if not os.path.exists(path):
22     os.makedirs(path)
23   return path
24 ‘‘‘自动生成一个唯一的字符串,固定长度为36‘‘‘
25 def unique_str():
26   return str(uuid.uuid1())
27 ‘‘‘
28 抓取网页文件内容,保存到内存
29 @url 欲抓取文件 ,path+filename
30 ‘‘‘
31 def get_file(url):
32   try:
33     cj=cookielib.LWPCookieJar()
34     opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
35     urllib2.install_opener(opener)
36     req=urllib2.Request(url)
37     operate=opener.open(req)
38     data=operate.read()
39     return data
40   except BaseException, e:
41     print e
42     return None
43 ‘‘‘
44 保存文件到本地
45 @path 本地路径
46 @file_name 文件名
47 @data 文件内容
48 ‘‘‘
49 def save_file(path, file_name, data):
50   if data == None:
51     return
52   mkdir(path)
53   if(not path.endswith("/")):
54     path=path+"/"
55   file=open(path+file_name, "wb")
56   file.write(data)
57   file.flush()
58   file.close()
59 #获取文件后缀名
60 print get_file_extension("123.jpg");
61 #創建文件目录,并返回该目录
62 #print mkdir("d:/ljq")
63 #自动生成一个唯一的字符串,固定长度为36
64 print unique_str()
65 url="http://qlogo1.store.qq.com/qzone/416501600/416501600/100?0";
66 save_file("D:/test/", "123.jpg", get_file(url))
时间: 2024-10-09 21:02:28

Python抓取网页中的图片到本地的相关文章

浅谈如何使用python抓取网页中的动态数据

我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器后动态生成的,而之前并没有的. 在编写爬虫进行网页数据抓取的时候,经常会遇到这种需要动态加载数据的HTML网页,如果还是直接从网页上抓取那么将无法获得任何数据. 今天,我们就在这里简单聊一聊如何用python来抓取页面中的JS动态加载的数据. 给出一个网页:豆瓣电影排行榜,其中的所有电影信息都

爬取网页中的图片到本地

library(rvest) library(downloader) url <- 'http://www.nipic.com/show/15419595.html' web <- read_html(url) link <- web %>% html_nodes("img") %>% html_attr("src") for(i in 1:length(link)){ download(link[i],paste("D://

Python抓取网页&amp;批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

用Python抓取全站中的404错误

链接是SEO的一个重要因素.为了在搜索引擎中获取更好的排名,一定要定期检查下网站中的链接是否依然有效.特别是由于一些巨大的改动可能会导致坏链接的出现.要检测这些站内的链接问题,可以通过一些在线的工具.比如Google Analytics,Bing Webmaster Tools,brokenlinkcheck.com等.尽管有现成的工具,我们也可以自己来编写一个.使用Python会非常容易. 参考原文:How to Check Broken Links with 404 Error in Pyt

抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程

本文主要介绍如何抓取网页中的内容.如何解决乱码问题.如何解决登录问题以及对所采集的数据进行处理显示的过程.效果如下所示: 1.下载网页并加载至HtmlAgilityPack 这里主要用WebClient类的DownloadString方法和HtmlAgilityPack中HtmlDocument类LoadHtml方法来实现.主要代码如下. var url = page == 1 ? "http://www.cnblogs.com/" : "http://www.cnblogs

用正则表达式抓取网页中的ul 和 li标签中最终的值!

获取你要抓取的页面 const string URL = "http://www.hn3ddf.gov.cn/price/GetList.html?pageno=1";            string htmlStr = null;            for (int i = 0; i < 10; i++)            {                try                {                    System.Net.Http

一个用php抓取网页中电子邮箱的实例

原文出自: http://outofmemory.cn/code-snippet/36020/php-how-zhuaqu-wangye-youxiangdizhi-code php如何抓取网页中邮箱地址,下面我就给大家分享一个用php抓取网页中电子邮箱的实例. 原文来自: www.pc100.net <?php /** desc:采集网页中的邮箱的代码 link:www.pc100.net date:2013/2/24 */ $url='http://www.pc100.net'; //要采集

python抓取网页

一 不需要登录的 import urllib2 content = urllib2.urlopen('http://XXXX').read() 二 使用代理 import urllib2 proxy_support = urllib2.ProxyHandler({'http':'http://XX.XX.XX.XX:XXXX'}) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_o

【转载】python抓取网页时候,判断网页编码格式

在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取.但是在抓取过程中会遇到编码的问题,那今天我们来看一下如何判断网页的编码:网上很多网页的编码格式都不一样,大体上是GBK,GB2312,UTF-8等.我们在获取网页的的数据后,先要对网页的编码进行判断,才能把抓取的内容的编码统一转换为我们能够处理的编码,避免乱码问题的出现. 使用chardet模块 1 #如果你的python没有安装c