精华内容
下载资源
问答
  • Python-爬虫爬取豆瓣top250图片Python-爬虫爬取豆瓣top250图片效果整体代码具体步骤 Python-爬虫爬取豆瓣top250图片 最近几天一直在学习爬虫,今天终于成功的写出了一个爬虫程序——爬取豆瓣排名前250的图片。豆瓣网...
  • python爬虫爬取图片

    2019-10-17 16:28:57
    简单,易懂,容易上手,适合初学者。python版本使用的python3,BeautifulSoup 需要安装
  • python根据正则表达式实现的一个对网页图片爬取爬虫功能,简单实用。
  • python3爬虫爬取网页图片简单示例

    万次阅读 热门讨论 2017-10-19 21:44:00
    于是我也就写一个python3简单爬虫爬虫一下贴吧的图片吧。话不多说,我们开始。 首先简单来说说一下知识。 一、什么是爬虫? 网页上面采集数据 二、学习爬虫有什么作用? 做案例分析,做数据分析,分析网页...

       本人也是刚刚开始学习python的爬虫技术,然后本来想在网上找点教程来看看,谁知道一搜索,大部分的都是用python2来写的,新手嘛,一般都喜欢装新版本。于是我也就写一个python3简单的爬虫,爬虫一下贴吧的图片吧。话不多说,我们开始。

    首先简单来说说一下知识。

    一、什么是爬虫?

    网页上面采集数据

    二、学习爬虫有什么作用?

    做案例分析,做数据分析,分析网页结构.......

    三、爬虫环境

    需求:python3x  pycharm

    模块:urllib 、urllib2、bs4、re

     

    四、爬虫思路:

    1.      打开网页,获取源码。

    *由于多人同时爬虫某个网站时候,会造成数据冗余,网站崩溃,所以一些网站是禁止爬虫的,会返回403拒绝访问的错误信息。----获取不到想要的内容/请求失败/IP容易被封……..等

    *解决办法:伪装——不告诉网站我是一个脚本,告诉它我是一个浏览器。(加上随便一个浏览器的头部信息,伪装成浏览器),由于是简单例子,那我们就不搞这些骚操作了。

    2.     获取图片

    *Find函数 :只去找第一个目标,查询一次

    *Find_all函数: 找到所有的相同的目标。

    这里可能有一个解析器的问题,我们也不说了,出问题的同学百度一堆解决办法。

    3.      保存图片地址与下载图片

    *a.使用urlib---urlretrieve下载(保存位置:如果保存在跟*.py文件同一个地方,那么只需要文件夹名称即可,如果是其他地方,那么得写绝对路径。)

    算了,不说那么多废话,既然是个简单例子,那我就直接贴代码吧。相信也没多少人呢看不懂。

    提一句:用BeautifulSoup 就可以不用正则;爬虫用正则,Bs4, xpath三种 选择一个就好。当然也可以混合使用,也还有其他种。

    爬取地址:http://tieba.baidu.com/p/3840085725

    百度贴吧的壁纸图片。

     

    代码如下:

    import urllib.request
    import re
    import os
    import urllib
    
    #!/usr/bin/python3
    
    import re
    import os
    import urllib.request
    import urllib
    
    #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
    def getHtml(url):
        page = urllib.request.urlopen(url)
        html = page.read()
        return html.decode('UTF-8')
    
    def getImg(html):
        reg = r'src="(.+?\.jpg)" pic_ext'
        imgre = re.compile(reg) #转换成一个正则对象
        imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中
        print("====图片的地址=====",imglist)
    
        x = 0 #声明一个变量赋值
        path = r'H:/python lianxi/zout_pc5/test' #设置保存地址
    
        if not os.path.isdir(path):
            os.makedirs(path) # 将图片保存到文件夹,没有则创建
    
        paths = path+'/'
        print(paths)
        for imgurl in imglist:
            urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x)) #打开imglist,下载图片保存在本地,
            x = x + 1
        print('图片已开始下载,注意查看文件夹')
        return imglist
    
    
    html = getHtml("http://tieba.baidu.com/p/3840085725") #获取该网址网页的源代码
    print(getImg(html)) #从网页源代码中分析并下载保存图片

     

    最后效果如图:

    好了,教程到这里就结束了。

    参考地址:https://my.oschina.net/zouqxb/blog/1553586

    (ps:对于python本人也是新手,文章有任何错误请多多包涵)

     

    展开全文
  • 本文实例讲述了Python3爬虫爬取百姓网列表并保存为json功能。分享给大家供大家参考,具体如下: python3爬虫之爬取百姓网列表并保存为json文件。这几天一直在学习使用python3爬取数据,今天记录一下,代码很简单很...
  • python爬虫爬取百度图片开发环境涉及的知识点ostimeurllib.errorquotere(.*?)re.compile(key)代码实现 开发环境 日期:2021.9.11 开发环境:python 3.9和pycharm ps:pycharm今天第一次用,随着将越来越多开发环境...

    10.25
    百度页面改了,方法失效了

    开发环境

    1. 日期:2021.9.11
    2. 开发环境:python 3.9和pycharm
      ps:pycharm今天第一次用,随着将越来越多开发环境集成到vscode上,感觉太复杂了,配置又不太懂,总是有问题,虽然很喜欢vscode的自由度,但不想折腾了,简单的开发环境更重要!
    3. 第三方库:
    • requests 2.25.1
    • urlibs 1.26.4

    涉及的知识点

    os

    用来实现对文件的操作
    第一个函数:检测文件是否存在
    第二个函数用来新建文件

    os.path.exists(base_dir)
    os.mkdir
    

    time

    用来延时,防止封 ip

    time。sleep(1#延时1ms
    

    urllib.error

    当图片网址失效时,用以实现 异常检测,使程序不中断,继续爬下一个图片,同时输出异常

    try:
           # 爬取代码    
    except urllib.error.URLError:
    	print("下载失败")
    

    quote

    URL只允许一部分ASCII字符,其他字符(如汉字)是不符合标准的,此时就要进行编码。

    将搜素内容进行编码

    keyword = quote("猫", encoding='utf-8')
    #最终编码的后的是  %E7%8C%AB  (没看错就是这样一串字符)
    

    re

    正则表达式
    查看百度图片的源码可找到图片的地址
    在这里插入图片描述
    这里相当于去获取https://img1.baidu.com/it/u=1225680675,2635144528&fm=26&fmt=auto&gp=0.jpg

    注意见面的 r ,所以’ ‘单引号是字符串 ,而里面的 双引号就是单纯的双引号字符
    查找的是括号里面的内容

    r'thumbURL":"(.*?)"'
    
    "thumbURL":"https://img1.baidu.com/it/u=1225680675,2635144528&fm=26&fmt=auto&gp=0.jpg"
    

    (.*?)

    再讲讲这个
    正则表达式中的 .? 或 .+

    后边多一个?表示懒惰模式。
    必须跟在*或者+后边用
    如:

    <img src="test.jpg" width="60px" height="80px"/>

    如果用正则匹配src中内容非懒惰模式匹配

    src=".*"

    匹配结果是:
    src="test.jpg" width="60px" height="80px"
    意思是从 =" 往后匹配,直到最后一个 " 匹配结束

    懒惰模式正则:
    src=".*?"
    结果:src="test.jpg"
    匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。

    re.compile(key)

    预编译,不用每次find的时候去编译

    代码实现

    首先是import 需要使用的库

    import os
    import urllib.request
    from urllib.parse import quote
    import re
    import urllib.error
    import requests
    import time
    

    首先,不想每次都手动复制cookie,所以先进入百度知道界面获取 cookie

    get_cookie_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                                      "Chrome/92.0.4515.159 Safari/537.36 "}
    get_cookie_html = "https://www.baidu.com/?tn=49055317_4_hao_pg"
    get_cookie_target = requests.session()
    cookie_target = get_cookie_target.get(get_cookie_html, headers=get_cookie_headers)
    cookie = requests.utils.dict_from_cookiejar(cookie_target.cookies)
    print(cookie)
    

    然后打印出来可以发现,格式是字典,并不是我们想要的格式在这里插入图片描述
    于是,我们将其简单处理一下变成我们需要的格式

    key = []
    value = []
    result_cookie = ""
    
    for i in cookie.keys():
        key.append(i)
    
    for i in cookie.values():
        value.append(i)
    
    for i in range(len(key)):
        result_cookie += key[i] + '=' + value[i] + ";"
    
    print(result_cookie)
    myheaders = {
        "Cookie": result_cookie,
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/92.0.4515.159 Safari/537.36 "
    }
    

    接下来就是 获取输入关键字 并建立文件夹

    pic_dir_name = input("输入想要爬取的主题:")
    base_dir = r"C:\Users\dawn\Desktop\百度图片/"
    #pic_dir_name = "猫"
    
    pic_dir = base_dir + pic_dir_name
    
    if os.path.exists(base_dir):
        if os.path.exists(pic_dir):
            print(pic_dir + "  文件已存在")
        else:
            os.mkdir(pic_dir)
    else:
        os.mkdir(base_dir)
        os.mkdir(pic_dir)
    
    

    这里去建立 图片的链接 和正则表达式
    链接里面的
    pn是值图片的开始 值 ,0指第一张
    rn指每次服务器给你的图片数量,一次最多60

    keyword = quote(pic_dir_name, encoding='utf-8')
    
    start_number = 0
    base_url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&queryWord=" + keyword + "&word=" + keyword + "&pn%d=&rn=60" % start_number
    key = r'thumbURL":"(.*?)"'
    pic_url = re.compile(key)  # 预编译
    

    进行循环,爬取,并保存在文件夹

    number = 1
    while start_number < 1800:
        response = urllib.request.Request(base_url, headers=myheaders)
        result = urllib.request.urlopen(response).read().decode("utf-8")
        for i in re.findall(pic_url, result):
            print(i)
            try:
                response = urllib.request.Request(i, headers=myheaders)
                pic_result = urllib.request.urlopen(response).read()
                with open(pic_dir + "/" + pic_dir_name + str(number) + ".jpg", "wb+") as f:
                    f.write(pic_result)
                number += 1
                time.sleep(0.5)
            except urllib.error.URLError:
                print("下载失败")
        start_number += 60
    
    
    展开全文
  • 2. 分析获取到的网页信息,提取需要的信息(图片地址) 3. 使用request将图片保存到本地以及会碰到的一些问题 1)获取图片信息,再保存到本地文件中 2). 超时处理 3). 读写超时 4). 超时重试 4.使用urllib 将...

    目录

    1. 如何获取网页信息

    1). 直接从网络读取

    2). 先将网页源码保存到本地,再读取

    2. 分析获取到的网页信息,提取需要的信息(图片地址)

    3. 使用request将图片保存到本地以及会碰到的一些问题

    1)获取图片信息,再保存到本地文件中

    2). 超时处理

    3). 读写超时

    4). 超时重试

    4. 使用urllib 将图片保存到本地以及会碰到的一些问题

    1). 使用 urllib 

    2). 超时处理

    2). 再次下载

    3). 显示下载进度

    5. urllib和requests设置超时后添加headers的问题

     1). requests设置

    2). urllib设置

    6. 总结


    本人略微学了一点python,主要是java。最近因为个人原因,需要爬虫抓取图片,近期面向百度编程,顺路总结一下。

    写爬虫,首先需要获取网页信息,然后从网页的一堆标签中找到有图片信息(地址)的,然后再利用网址把图片保存起来。

     

    1. 如何获取网页信息

    1). 直接从网络读取

    from bs4 import BeautifulSoup
    
    url = "http://www.baidu.com" 
    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
    }
    
    # url 是网页地址
    web_data = requests.get(url, headers=headers)    
    soup = BeautifulSoup(web_data.text, 'lxml')  
    
    
    

    读取的方法就是 

    web_data = requests.get(url, headers=headers)    
    soup = BeautifulSoup(web_data.text, 'lxml') 

    2). 先将网页源码保存到本地,再读取

    from bs4 import BeautifulSoup
    
    file = open('C:/Users/tj/Desktop/test.html','r',encoding='utf-8')
    soup = BeautifulSoup(file,'lxml')

    2. 分析获取到的网页信息,提取需要的信息(图片地址)

    这里假设所有的图片都在img标签中,所有的img标签都在一个class属性名为beautiful的div(有且只有这么一个)中,图片的地址信息都在img的src属性中。

    from bs4 import BeautifulSoup
    import requests
    
    
    # soup 有N多方法,find()、find_all()等 (具体用法百度), 
    
    img_list=soup.find('div', class_="beautiful").find_all('img')
    
    # 对 img_list进行遍历,获取其中的信息保存到数组中
    li=[]
    for x in range(len(img_list)):
        print(x+1,":      ",img_list[x].attrs["src"])   
        li.append(img_list[x].attrs["src"])

    3. 使用request将图片保存到本地以及会碰到的一些问题

    1)获取图片信息,再保存到本地文件中

    """
    描述
    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
    
    Python 2.3. 以上版本可用,2.6 添加 start 参数。
    
    语法
    以下是 enumerate() 方法的语法:
    enumerate(sequence, [start=0])
    
    参数
    sequence -- 一个序列、迭代器或其他支持迭代对象。
    start -- 下标起始位置。
    """
    from bs4 import BeautifulSoup
    import requests
    
    path="C:/Users/tj/Desktop/"
    
    # i表示下标(从1开始), v表示数组的内容
    for i,v in enumerate(li,start=1): 
        # 将 图片地址(即v) 再次放入request中
        image = requests.get(v, timeout=10) 
        """ 
            存取图片过程中,出现不能存储int类型,故而,我们对他进行类型转换str()。
            w:读写方式打开,b:二进制进行读写。图片一般用到的都是二进制。
        """
        with open( path + str(i)+'.jpg', 'wb') as file:
            # content:图片转换成二进制,进行保存。
            file.write(image.content)
    
      
        # 也可以使用如下方式保存到本地(和上面的保存到本地的方式其实一样)
        dir = path + str(i)+'.jpg'
        fp = open(dir, 'wb')
        fp.write(image.content)
        fp.close()

    2). 超时处理

    有些图片可能网址打不开,所以要添加超时处理:

    from bs4 import BeautifulSoup
    import requests
    
    path="C:/Users/tj/Desktop/"
    
    # i表示下标(从1开始), v表示数组的内容
    for i,v in enumerate(li,start=1): 
    
        try:
            # 将 图片地址(即v) 再次放入request中
            image = requests.get(v, timeout=10) 
        except requests.exceptions.ConnectionError:
            print('【错误】当前图片无法下载')
            continue
    
        with open( path + str(i)+'.jpg', 'wb') as file:
            # content:图片转换成二进制,进行保存。
            file.write(image.content) 

        网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应。
        超时又可分为连接超时和读取超时。

        连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是connect()),Request 等待的秒数。就算不设置,也会有一个默认的连接超时时间(据说是21秒)。

    3). 读写超时

        读取超时指的就是客户端等待服务器发送请求的时间。(特定地,它指的是客户端要等待服务器发送字节之间的时间。在 99.9% 的情况下这指的是服务器发送第一个字节之前的时间)。

        简单的说,连接超时就是发起请求连接到连接建立之间的最大时长,读取超时就是连接成功开始到服务器返回响应之间等待的最大时长。

        如果你设置了一个单一的值作为 timeout,如下所示:

    r = requests.get('https://github.com', timeout=5)
    

    这一 timeout 值将会用作 connect 和 read 二者的 timeout。如果要分别制定,就传入一个元组: 

    r = requests.get('https://github.com', timeout=(3.05, 27))
    

    读取超时是没有默认值的,如果不设置,程序将一直处于等待状态。我们的爬虫经常卡死又没有任何的报错信息,原因就在这里了。

    4). 超时重试

    一般超时我们不会立即返回,而会设置一个三次重连的机制。

    def gethtml(url):
        i = 0
        while i < 3:
            try:
                html = requests.get(url, timeout=5).text
                return html
            except requests.exceptions.RequestException:
                i += 1
    

    其实 requests 已经帮我们封装好了。(但是代码好像变多了...)

    import time
    import requests
    from requests.adapters import HTTPAdapter
    
    s = requests.Session()
    s.mount('http://', HTTPAdapter(max_retries=3))
    s.mount('https://', HTTPAdapter(max_retries=3))
    
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    try:
        r = s.get('http://www.google.com.hk', timeout=5)
        return r.text
    except requests.exceptions.RequestException as e:
        print(e)
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    

    max_retries 为最大重试次数,重试3次,加上最初的一次请求,一共是4次,所以上述代码运行耗时是20秒而不是15秒

    注意: 从 超时重试 直到这里, 参考了 https://www.cnblogs.com/gl1573/p/10129382.html在此表示感谢。

    4. 使用urllib 将图片保存到本地以及会碰到的一些问题

    1). 使用 urllib 

    urllib2 在 python3.x 中被改为urllib.request 

    import urllib  
    
    #i表示下标,从1开始; v表示数组的值(图片的地址)
    for i,v in enumerate(li,start=1):   
    	urllib.request.urlretrieve(v, path+str(x)+'.jpg')   

    2). 超时处理

    有些图片可能网址打不开,所以要添加超时处理,但超时处理如下设置:

    import urllib  
    import socket 
    
    #设置超时时间为30s
    socket.setdefaulttimeout(30)
    
    #i表示下标,从1开始; v表示数组的值(图片的地址)
    for i,v in enumerate(li,start=1):   
    	urllib.request.urlretrieve(v, path+str(x)+'.jpg')   

    2). 再次下载

    同时,还可以超时后 使用递归 再次下载:

    tips:新下载的文件会覆盖原来下载不完全的文件。

    import urllib  
    import socket 
    
    #设置超时时间为30s
    socket.setdefaulttimeout(30)
    
    def auto_down(url,filename):
        try:
            urllib.urlretrieve(url,filename)
        except urllib.ContentTooShortError:
            print 'Network conditions is not good.Reloading.'
            auto_down(url,filename)
    
    #i表示下标,从1开始; v表示数组的值(图片的地址)
    for i,v in enumerate(li,start=1):   
        auto_down(v, path+str(x)+'.jpg') 
    
    
    

    但下载 会尝试好几次,甚至十几次,偶尔会陷入死循环,这种情况是非常不理想的。需要避免陷入死循环,提高运行效率。

    import urllib  
    import socket 
    
    #设置超时时间为30s
    socket.setdefaulttimeout(30)
    
    #i表示下标,从1开始; v表示数组的值(图片的地址)
    for i,url in enumerate(li,start=1):   
    	urllib.request.urlretrieve(v, path+str(x)+'.jpg')   
    
    try:
        urllib.request.urlretrieve(url,path+str(x)+'.jpg')
    except socket.timeout:
        count = 1
        while count <= 5:
            try:
                urllib.request.urlretrieve(url,path+str(x)+'.jpg')                                                
                break
            except socket.timeout:
                err_info = 'Reloading for %d time'%count if count == 1 else 'Reloading for %d times'%count
                print(err_info)
                count += 1
        if count > 5:
            print("downloading picture fialed!")

    注意: 从 使用递归再次下载直到这里, 参考了 https://www.jianshu.com/p/a31745fef1d8 , 在此表示感谢。

    3). 显示下载进度

    同时使用 urllib.request.urlertriever() 的其他参数还可以显示出下载进度

    import urllib
    from urllib.request import urlretrieve
    
    #解决urlretrieve下载文件不完全的问题且避免下载时长过长陷入死循环
    def auto_down(url,filename):
        try:
            urlretrieve(url,filename,jindu)
        except socket.timeout:
            count = 1
            while count <= 15:
                try:
                    urlretrieve(url, filename,jindu)
                    break
                except socket.timeout:
                    err_info = 'Reloading for %d time' % count if count == 1 else 'Reloading for %d times' % count
                    print(err_info)
                    count += 1
            if count > 15:
                print("下载失败")
    
    """ 
    urlretrieve()的回调函数,显示当前的下载进度
        a为已经下载的数据块
        b为数据块大小
        c为远程文件的大小
    """
    
    global myper
    def jindu(a,b,c):
        if not a:
            print("连接打开")
        if c<0:
            print("要下载的文件大小为0")
        else:
            global myper
            per=100*a*b/c
     
            if per>100:
               per=100
            myper=per
            print("当前下载进度为:" + '%.2f%%' % per)
        if per==100:
                return True 

    注意: 上面这段参考: https://blog.csdn.net/HW140701/article/details/78254826 在此表示感谢。

    5. urllib和requests设置超时后添加headers的问题

     1). requests设置

        request设置超时是用 requests.session() 返回的对象设置的,添加headers如下设置:

        本人未亲自验证,不知道对错。

    import requests
    
    
    cookies.clear
    headers = { 
        "User-Agent" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) ", 
    }
    
    conn = requests.session()#设置一个回话
    resp = conn.post('https://www.baidu.com/s?wd=findspace',headers=headers)
    
    # 打印请求的头
    print(resp.request.headers)
    print resp.cookies
    
    # 再访问一次:
    resp = conn.get('https://www.baidu.com/s?wd=findspace',headers=headers)
    print(resp.request.headers)
    print resp.cookies
    

    2). urllib设置

        urllib如下设置:

        本人未亲自验证,不知道对错。

        注意:这个headers是不是字典。

    opener = urllib.request.build_opener()
    
    opener.addheaders = 
    [
    ('User-agent', 
    'Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10')
    ]
    
    urllib.request.install_opener(opener)
    urllib.request.urlretrieve(URL, path)   #path为本地保存路径
     

    6. 总结

        其实还是挺简单的(因为我没碰到难的。。。),最难的就是分析网页结构,都是套路。

    展开全文
  • 利用python抓取网络图片的步骤: 1.根据给定的网址获取网页源代码 2.利用正则表达式把源代码中的图片地址过滤出来 3.根据过滤出来的图片地址下载网络图片
  • python网络爬虫爬取图片代码

    千次阅读 2016-09-27 00:12:19
    此文章是基于Python 3.6.0a4 进行的开发,目的是爬取网站的图片,打包成一个文件夹 本来的目的是想基于主页进行遍历所有的图集,进去之后再遍历所有的图片进行下载,结果发现url地址根本就不需要我遍历,直接用数字...

    因为刚学的python,有些地方的代码还需要改进。后续有时间会继续改进代码。
    此文章是基于Python 3.6.0a4 进行的开发,目的是爬取网站的图片,打包成一个文件夹
    本来的目的是想基于主页进行遍历所有的图集,进去之后再遍历所有的图片进行下载,结果发现url地址根本就不需要我遍历,直接用数字进行累加就可以,晕倒。
    所以改成了一个很简单的代码。

    import urllib.request
    import re
    import os
    
    def  url_open(url):
        req = urllib.request.Request(url)
        req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36')
        response = urllib.request.urlopen(req)
        html = response.read()
        return html
    
    def get_page(html):
        html = html.decode('utf-8')
        return html
    
    def save_imgs(folder ,filename):
        name = filename.split('/')[-1]
        with open(name ,'wb') as f:
            img = url_open(filename)
            f.write(img)
    
    
    def  download_pic(folder = 'picss2',pages = 1000):
    
        url = 'http://luluhei.tv/album/'
        os.mkdir(folder)
        os.chdir(folder)
        '''
        ip_address = 'http://luluhei.tv'
    
        re_main = re.compile(r'<a href="/album/.*>')
        html_main = url_open(url)
        find_main = re.findall(re_main,html_main)
        urllib.parse.quote()
        print(filename)
        '''
    
        for num in range(3510,3550):
    
    
            html_findimg = get_page(url_open(url + str(num)))
    
            re_findimg = re.compile(r'<img src=.*jpg')
            find_findimg = re.findall(re_findimg,html_findimg)
    
            for img_src in find_findimg:
                filename = img_src[10:]
                save_imgs(folder,filename)
    
    
    if __name__ == '__main__':
        download_pic()
    
    
    
    
    展开全文
  • Python简单爬虫爬取多页图片

    千次阅读 2017-07-11 15:04:46
    初学爬虫简单的爬了爬贴吧图片#!/usr/bin/python # coding utf-8 import re import time import urllib def getHtml(): x=0 for i in range(1,41): url = ' '% i page = urllib.urlopen(url) html = page.
  • 一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点。...
  • Python爬虫爬取网站图片

    万次阅读 多人点赞 2018-08-26 14:41:10
    暑假在家练科三的时候无聊突然想重拾Python,之前简单的学了学Python2的语法,但以后主流是Python3,就下了Python3,pycharm对着别人的教程试了试爬虫,我之前python2的时候爬虫主要用urllib,urllib2这两个,然后是...
  • 最近在研究爬虫,爬取好多网站的数据,下面就以爬取图片网站照片为例,来让大家学习,希望大家多交流。总的来说爬虫不难,会python简单语法,会xpath提取网页需要的信息,就可以很快的爬取网站的图片,同时也希望...
  • 这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片。 用到的包: urllib....
  • 使用Python爬虫爬取网络美女图片

    千次阅读 2018-09-19 08:59:14
    准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install requests -i https://mirrors.ustc.edu.cn/pypi/web/simple 安装lxml库(用于解析html文件) pip install lxml -i ...
  • 今天我们来看一看使用Python爬取一些简单的网页。 所用工具:IDLE (Python 3.6 64-bit) 一. 爬取京东商品页面 我将要爬取的是这个东京商品页面信息,代码如下: import requests url = &quot;...
  • 拓展python爬虫爬取图片

    千次阅读 2020-08-25 15:58:35
    爬虫爬取图片简单实例 这里以图片之家为例 首先分析网页 每一页与每一页之间只是list_176_后面的数字不同,所以我们可以根据不同的需求来进行翻页 图片的定位: 小编这里使用的是xpath来进行的定位,比较简单,...
  • python爬虫 爬取图片并保存

    千次阅读 2018-09-19 11:16:44
    今天爬了美丽说网站首页的图片 可是等把图片的url获取之后却不知道怎么保存了。。(感觉自己当时脑子短路了) 然后自己上网查看了一些方法。。 1.网上有说 urllib模块中有个urlretrieve函数可以直接下载保存,于是...
  • 如何用python实现爬虫自动爬取百度图片原图

    千次阅读 多人点赞 2019-01-04 16:31:25
    其实一直以来,对于python这个语言还是很感兴趣的,但是以前一直在做图像处理相关的东西,所以对这种无法触及底层内存处理的语言一直没怎么关注过,不过最近实在是被C++的字符串处理和复杂芜杂的网络框架给整崩溃了...
  • 今天小编就为大家分享一篇Python爬虫获取图片并下载保存至本地的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 我们要爬取的页面是榜单。 第一步 打开F12,分析请求网址。 在XHR中可以很快找到网站用来存放图片信息的接口网址。 我们可以很直接的看出这个接口为post请求,并且有一段需要拼接的FormData内容。 这里博主还发现...
  • python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程。网络爬虫,又被称为...
  • python爬虫爬取百度图片

    千次阅读 2018-07-07 12:06:42
    这两天尝试在爬取百度图片时,遇到了不少坑,有几处问题还不太明白,先记录下来,待日后解决。问题如下:1. 百度图片的网页有两种:http://image.baidu.com/search/index?tn=baiduimage&amp;ps=1&amp;ct=...
  • 爬虫已经开始违法了,所以需要谨慎使用。 以下开始正文 首先,import几个需要用到的包 import requests #需要用这个包向百度发送请求 import re #需要用这个包进行正则匹配 import time #休眠一下,以免给服务器...
  • 2017年9月16日零基础入门Python,第二天就给自己找了一个任务,做网站文章的爬虫小项目,因为实战...3,爬取图片 4,把爬取到的数据存在本地文件夹或者数据库 5,学会用pycharm的pip安装Python需要用到的扩展包 一,首
  • 我原本以为我这样的菜鸟,如果想爬的话应该只能用xpath来爬取斗鱼图片,可是当我在爬取途中想获取地址,发现了很奇怪的现象 之后我去百度了,看到他们说斗鱼是哪js写的所以我xpath找不到… 所以我就去看了一下...
  • 今天发的是python爬虫爬取中国大学排名,并且保存到excel中,当然这个代码很简单,我用了半小时就写完了,我的整体框架非常清晰,可以直接拿去用,也希望有小白可以学习到关于爬虫的一些知识 爬取中国大学排名 ...
  • Python爬虫爬取网站信息的基本流程

    千次阅读 2020-09-18 11:40:05
    前言 一名爬虫爱好者接触爬虫的时间不长,希望能共同进步一起学习 ...拆分源码:在爬取出的源码中找出自己想要的规律信息,如下图获取网页图片信息: 获取数据:获取数据后可以将数据保存到数据库,制作图表
  • Python 爬虫系列教程一爬取批量百度图片

    万次阅读 多人点赞 2018-07-29 19:40:05
    很久之前就学习了Python爬虫了,也用来做过一些项目(主要是一些课程项目),但时间比较紧,一直没有空把它写下来,这个暑假,我可能会逐渐更新Python爬虫的相关知识。 项目1:实现批量爬取百度图片简单的...
  • 主要介绍了Python使用xpath实现图片爬取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,221
精华内容 5,688
关键字:

python简单爬虫爬取图片

python 订阅
爬虫 订阅