精华内容
下载资源
问答
  • path=root+url.split('/')[-1] try: if not os.path.exists(root): os.mkdir(root) if not os.path.exists(path): r=requests.get(url) with open(path,'wb') as f: f.write(r.content) f.close() print("图片保存cg...

    import requests

    import os

    url="http://lofter.nos.netease.com/sogou-Y1gxMDFIeFVHeWhCTkZaMEkzYWx1bGR5WEszQTdRTEZPcndxZWo3Q0dwTG1iZF9uVENpM0tCaUJNOXA1bmZkTA.jpg"

    root="F://pics//";

    path=root+url.split('/')[-1]

    try:

    if not os.path.exists(root):

    os.mkdir(root)

    if not os.path.exists(path):

    r=requests.get(url)

    with open(path,'wb') as f:

    f.write(r.content)

    f.close()

    print("图片保存cg")

    else:

    print("保存失败")

    except:

    print('爬取失败')

    2、在windows终端执行以上代码

    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

    展开全文
  • python爬虫爬取图片保存到本地文件

    千次阅读 2019-02-16 20:46:00
    今天搜索电脑壁纸突发奇想就把所有壁纸怕取下来了 百度 壁纸 随便挑了一个点进去是zol电脑壁纸ZOL桌面壁纸 现在开始爬取 import requests ...def baocun(url):#此方法是将图片保存文件到本地 只需要传入图片...

    今天搜索电脑壁纸突发奇想就把所有壁纸怕取下来了

    百度 壁纸 随便挑了一个点进去是zol电脑壁纸ZOL桌面壁纸

    现在开始爬取

    import requests
    from lxml import etree
    import time
    import os
    #url = 'http://desk.zol.com.cn/nb/'
    def baocun(url):#此方法是将图片保存文件到本地 只需要传入图片地址
    	root = "E://python//"#这是根文件所在
    	path=root+url.split('/')[-1]#通过’/‘把图片的url分开找到最后的那个就是带.jpg的保存起来
    
    	if not os.path.exists(root):
    		os.mkdir(root)
    	if not os.path.exists(path):
    		r = requests.get(url)
    		r.raise_for_status()
    		with open(path,'wb') as f:#模式以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等
    			f.write(r.content)#r.content返回二进制,像图片
    			print('爬取成功')
    def getHTML(url):#解析网页 并且解析出来图片地址
    	response = requests.get(url)
    	response.encoding='gbk'#先前解析出来的是乱码 看网页得知编码方式是gbk
    	html = etree.HTML(response.text)#etree.HTML()#是一个方法用来解析html网页的
    	imgurl=html.xpath('//div[@class="wrapper top-main clearfix"]/div[1]/ul[1]/li/a/img/@src')#通过f12开发者工具查看网页代码得知图片地址具体所在
    	count=1
    	for index,i in enumerate(imgurl):
    		# print("这是第"+str(count)+"数据")
    		print(i)
    		baocun(i)
    		count=count+1
    indexa=1
    for i in range(1,100):#做到翻页,先观察这个网址的每一页的规律再进行翻页,因为每一个的网页的xpath都是固定的只需要顺序请求每一页再然后每一页再进行解析就能把全部的图片下载下来
    	url='http://desk.zol.com.cn/nb/%d.html'%i#占位符
    	print('这是第'+str(indexa)+"页数据")
    	indexa=indexa+1
    	getHTML(url)
    	time.sleep(2)#设置请求一页休眠2秒 避免被拦截
    
    • 这是全部代码我花了很长的时间是因为当我使用xpath解析网页的时候一步一步来的把每一个的div的class以及ul跟li的class都写出来可是就是返回的空。最后我在根的div元素开始使用div[index]这样的方式最终获取了图片路径,这里提醒大家如果xpath很仔细还不对可能是网页设计的坑,有一次爬取51job的时候又一个类是后面加了一个空格,不很仔细看看不出来,复制也复制不出来这个空格。最后直接copy的xpath。径才可以。有时候一种方式解析不出换一种方式可能就行了。要仔细。
    展开全文
  • Python爬取图片保存本地

    千次阅读 2020-03-04 12:18:26
    好久没用requests写爬虫了,因为是国内的网站,...url=‘http://www.supe.com.cn/index.php/Project/index’,就这这个各个行业的链接抓取下来,然后保存到本地, 代码是 import requests headers={ 'User-Agen...

    好久没用requests写爬虫了,因为是国内的网站,展示没有使用代理IP,而且爬取的数据不多。
    1、第一步将要爬取的网页链接爬取下来。这句话有些矛盾。
    url=‘http://www.supe.com.cn/index.php/Project/index’,就这这个各个行业的链接抓取下来,然后保存到本地,
    在这里插入图片描述
    代码是

    import requests
    
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
    }
    
    # 要访问的目标页面
    url='http://www.supe.com.cn/index.php/Project/index'
    resp = requests.get(url, headers=headers,)
    res_html=resp.text
    #对网页进行解析,并获取想要的内容,这里是用xpath的路径选择
    from scrapy.selector import Selector
    select=Selector(resp)
    area=select.xpath('/html/body//ul[@class="nav clearfix"]//a/text()').extract() #获取分类的类别 ['地坪案例', '聚脲案例']
    area_herf=select.xpath('/html/body//ul[@class="nav clearfix"]//a/@href').extract() # ['/index.php/Project/index/cat_id/14', '/index.php/Project/index/cat_id/15']
    
    #这里定义一个保存为csv的函数
    import csv
    def save_csv(data_list):
        file = csv.writer(open('link.csv', 'a', newline='', encoding='utf-8'))
        file.writerow(data_list)
    
    #获取各个行业的名称以及链接
    hangye=select.xpath('/html/body/div[@class="main"]//div[@class="case bgf"]//li')
    for li in hangye:
        hangye_href=li.xpath('./a/@href').extract_first()
        hangye_name=li.xpath('./a/text()').extract_first()
        hangye_href_2=hangye_href+'/p/2'
        print(hangye_name,hangye_href,hangye_href_2)
        
        if hangye_href==None:
            break
        save_csv([hangye_name,hangye_href,hangye_href_2]) #传入一个列表,按行写入
    
    

    保存的各个行业的链接如下:

    在这里插入图片描述

    二、通过读取link的csv文件获取每个行业的图片链接和标题文字
    在这里插入图片描述
    此时保存的时候需要你提前在项目的目录先新建一个保存csv文件的文件夹,如图:
    在这里插入图片描述
    代码如下:

    # -*- coding: utf-8 -*-
    # @Time    : 2020/3/4 9:43
    # @Author  : 结尾!!
    # @FileName: 抓取工程案例的图片-链接.py
    # @Software: PyCharm
    import csv
    import time
    import requests
    from scrapy.selector import Selector
    def parser_html(hangye,url):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
        }
        # 要访问的目标页面
        resp = requests.get(url, headers=headers, )
        print(url,resp.status_code)
        select = Selector(resp)
        #获取所有的行业以及行业的链接
        # hangye = select.xpath('/html/body/div[@class="main"]//div[@class="case bgf"]//li') #调用自身的网页链接是一样的
    
        # 解析图片和图片的文字  //*[@id="vid_45"]
        anli_tu = select.xpath('//*[@id="vid_45"]/ul//li')
        for tu_li in anli_tu:
            img = tu_li.xpath('./div[@class="picall"]/img/@src').extract_first()
            di_biao = tu_li.xpath('./div[@class="picall"]//em/text()').extract_first()
            jie_shao = tu_li.xpath('./div[@class="picall"]//p/text()').extract_first()
            save_csv(hangye,[img,di_biao,jie_shao])
    
    def save_csv(filename,data_list):
        #需要提前新建一个保存csv文件的图片
        file = csv.writer(open(f'./project_case/{filename}.csv', 'a', newline='', encoding='utf-8'))
        file.writerow(data_list)
    
    
    
    if __name__ == '__main__':
        file=open('./link.csv',encoding='utf-8')
        links=file.readlines()
        #构造链接http://www.supe.com.cn/index.php/Project/index/cat_id/15
        for link in links:
            print(link.split(','))
            line_list=link.split(',')
            link_1='http://www.supe.com.cn'+line_list[1]
            link_2='http://www.supe.com.cn'+line_list[2].strip()
            parser_html(line_list[0],link_1)
            time.sleep(2)
            parser_html(line_list[0],link_2)
            time.sleep(2)
    
    
    
    

    三、就可以按照保存的图片链接,和内容进行下载图片了

    
    import requests
    def request_download(file,list_data):
        file_name=file[:-4]
        os.makedirs(f'./project_case/{file_name}/',exist_ok=True) #创建文件夹
        IMAGE_URL='http://www.supe.com.cn'+list_data[0]
        print(IMAGE_URL)
        header={
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
    
        }
        r = requests.get(IMAGE_URL,headers=header)
        with open(f'./project_case/{file_name}/{list_data[1]}.jpg', 'wb') as f:
            f.write(r.content)
    
    import os
    if __name__ == '__main__':
    
        file_names=os.listdir('./project_case')
        print(file_names)
        for file_each in file_names:
            print(file_each)
            if file_each.endswith('.csv'):
                file=open(f'./project_case/{file_each}',encoding='utf-8')
                links=file.readlines()
                for line in links:
                    print(line.split(','))
                    data=line.split(',')
                    request_download(file_each,data)
                # time.sleep(1)
    
    
    

    最后效果如下:每个文件夹下都是对应的csv文件中的图片,以及可以查找对应的图片描述
    在这里插入图片描述
    在这里插入图片描述
    以上就是全部过程,给requests加代理,这个使用阿布云代上的代理案例代码,,这里不做演示了。。

    展开全文
  • python爬取图片保存到本地

    万次阅读 2018-12-18 14:27:19
    Python爬取图片(你懂得) requests与Bs4 这两个模块是本文使用的主要模块,requests可以获取连接,bs4全名BeautifulSoup,是编写python爬虫常用库之一,主要用来解析html标签。这两个模块可以通过cmd终端下载 pip ...

    Python爬取图片(你懂得)

    requests与Bs4

    这两个模块是本文使用的主要模块,requests可以获取连接,bs4全名BeautifulSoup,是编写python爬虫常用库之一,主要用来解析html标签。这两个模块可以通过cmd终端下载

    pip install bs4
    pip install requests
    

    代码实现

    import requests
    from bs4 import BeautifulSoup
    import os
    class Mzitu():
        def __init__(self):
            self.headers = {
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'
            }# 构造请求头,主网站的请求头较为简单只需构造浏览器头
            self.base_path = os.getcwd() # 获取当前路径
    
        def get_url(self,html):
        '''获取每个套图的链接,并返回'''
            html_b=BeautifulSoup(html,'lxml')
            urls_b = html_b.find_all('ul',attrs={'id':'pins'})[0]
            urls = urls_b.find_all('a')
            for i in urls:
                yield i['href']
    
        def get_img_url_max(self,url):
        '''获取图片的张数'''
            html_i = requests.get(url,headers=self.headers).text
            html_b = BeautifulSoup(html_i,'lxml')
            max_number=html_b.find_all('div',attrs={'class':'pagenavi'})[0]
            max_number = max_number.find_all('a')[-2].span.text
            return max_number
    
        def get_img_url(self,url):
        '''获取每张图片的链接'''
            html_i = requests.get(url, headers=self.headers).text
            html_b = BeautifulSoup(html_i, 'lxml')
            img_url = html_b.find_all('div',attrs={'class':'main-image'})[0].p.a.img['src']
            return img_url
    
        def download_img(self,name,url):
        '''获取每张图片的内容'''
            headers = {
                'Accept':'image/webp,image/apng,image/*,*/*;q=0.8',
                'Accept-Encoding':'gzip, deflate',
                'Accept-Language':'zh-CN,zh;q=0.9',
                'Connection':'keep-alive',
                'Host': 'i.meizitu.net',
                'Referer': 'http://www.mzitu.com/%s'%name,
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'
            }
            img = requests.get(url,headers=headers).content
            return img
    
        def get_img(self,name,max,img_url):
        '''下载图片'''
            path = os.path.join(self.base_path,name)
            if os.path.exists(path):
                pass
            else:
                os.mkdir(path)
            for i in range(1,int(max)):
                k = str(i)
                file_name = k+'.jpg'
                img_file_name = os.path.join(path,file_name)
                if len(k) <2:
                    img_url = img_url[:-5]+k+img_url[-4:]
                else:
                    img_url = img_url[:-6]+k+img_url[-4:]
                img = self.download_img(name,img_url)
                with open(img_file_name,'wb') as f:
                    f.write(img)
    
        def get_html_url_link_max(self):
        '''获取主网站中的总页数'''
            url = 'http://www.mzitu.com/'
            html = requests.get(url,headers = self.headers).text
            html_b = BeautifulSoup(html,'lxml')
            max_number = html_b.find_all('a',attrs={'class':'page-numbers'})[-2]['href']
            max_number = max_number.split('/')[4]
            return max_number
    
        def main(self):
            max_number = int(self.get_html_url_link_max())
            for i in range(1,max_number+1):
            '''遍历构造网址'''
                url = 'http://www.mzitu.com/page/%d/'%i
                html = requests.get(url,headers=self.headers).text
                urls = self.get_url(html)
                for i in urls:
                    name = i.split('/')[-1]
                    max_number = self.get_img_url_max(i)
                    img_url = self.get_img_url(i)
                    self.get_img(name,max_number,img_url)
    
    if __name__ == '__main__':
        mzitu = Mzitu()
        mzitu.main()
    

    运行程序后,即可在同文件夹下发现不断有包含图片的文件夹生成

    封装后的exe下载

    展开全文
  • Python爬取网络图片保存到本地文件夹主要内容第一步 引入库文件第二步 获取网页文档第三步 获取图片地址第四步 通过地址保存图片在main方法执行以上方法执行main()方法爬取结果 主要内容 经过上一次的爬虫实例,我...
  • python爬取图片 先上代码: from urllib.request import Request, urlopen, urlretrieve from fake_useragent import UserAgent import time import re def get_html(rul): # 设置请求头 headers = { 'User-...
  • path=root+url.split('/')[-1] try: if not os.path.exists(root): os.mkdir(root) if not os.path.exists(path): r=requests.get(url) with open(path,'wb') as f: f.write(r.content) f.close() print("图片保存cg...
  • python爬取图片保存到本地 # -*- coding: utf-8 -*- import urllib import requests import os import codecs url = 'http://724.169pp.net/bizhi/2017/039/1.jpg' bytes = urllib.request.urlopen(url) f = ...
  • 先把原理梳理一下:首先我们要爬取网页的代码,然后从中提取图片的地址,通过获取的地址来下载数据,并保存在文件中,完成。下面是具体步骤:先确定目标,我挑选的是国服守望先锋的官网的英雄页面,我的目标是爬取...
  • 安装scrapypip install Scrapy进入终端,切换自己项目代码的工作空间下,执行scrapy startproject baidu_pic_spider生成如下工程文件:images是自己创建的用于存放爬图片目录。在spiders目录下创建baidu_pic_...
  • 上一讲我们说了如何把网页的数据通过分析后存储数据库,我们这次讲如何将网页上的图片提取并下载到本地。思路如下:我们本次要爬取的是昵图网首页的图片。1、首先分析我们要爬取的网页的代码结构,每个网页的代码...
  • 这里把爬取的网站地址处理掉了。直接展示不好。 经常找壁纸的童鞋,应该会知道我爬的是哪个网站????(找不狗头) from typing import List, Any, Union # import requests import random import string import ...
  • import re import requests import json import os from urllib import request ...format=json&keyword=%E7%BE%8E%E5%9B%BE&autoload=true&... # 下载图片 request.urlretrieve(img_url,path)
  • 获取到图片地址链接后,就可以下载图片保存到本地了。那么就需要确认初始化定义的文件夹是否存在,如果不存在,需要创建。 def mkdir(self, path): # 创建文件夹 path = path.strip() is_exists = os.path.exists...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,231
精华内容 2,892
关键字:

python爬取图片保存到本地

python 订阅