zoukankan      html  css  js  c++  java
  • python3.5学习笔记一个简单的图片爬虫

    参考资料:http://v.qq.com/boke/page/q/g/t/q01713cvdgt.html

    目的:爬取网站图片

    实际上以上链接的视频中已经将整个过程说的非常明白了,稍微有点计算机基础的人想来都不难实现。

    所以,废话不多说,直接粘我写的脚本了事,有问题看视频即可。

    #################################################################3

    import os,requests,urllib.request
    from bs4 import BeautifulSoup

    header = {'User-Agent':'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', #这两个参数user-agent以及cookie,随便找一个有“开发者工具”功能的浏览器都可以看到,视频里有讲到,这我就不暴露了
    'Cookie':'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}
    folter_path = 'E://temp/xxxxxx/'

    def make_file(path): #创建文件夹的函数,并返回一个图片存贮路径
    if not os.path.isdir(folter_path):
    os.mkdir(folter_path)
    t = os.path.join(folter_path,str(path) + '/')
    if not os.path.isdir(t):
    os.mkdir(t)
    return t

    def down_pic(start_num,end_num,type): #爬取图片的函数,参数是:起始页,结束页,下载类型
    for num in range(int(start_num),int(end_num)):
    url = 'http://xxxxxx.net/ooxx/page-{}'.format(num) #具体网址见视频吧,或者自己找一个也可以,这个随意。
    source_code = requests.get(url,headers = header)
    plain_txt = source_code.text
    Soup = BeautifulSoup(plain_txt)
    download_link = []
    print('get' + str(num))

    for pic_tag in Soup.find_all('img'):
    pic_link = pic_tag.get(str(type))
    download_link.append(pic_link)

    while None in download_link: #这块实际上用处不大,因为用type做了区分,不会产生垃圾数据,不过懒得去掉了。
    download_link.remove(None)

    for item in download_link: #下载图片
    urllib.request.urlretrieve(item,pic_path + item[-10:])

    start_num = 1760
    end_time = 1767
    type = {'jpg':'src','gif':'org_src'} #类型字典

    pic_path = make_file(type['gif'])
    down_pic(start_num,end_time,type['gif'])

    ##################################################################################
    代码比视频教程多的东西,是以下几个方面:
    1、增加了创建图片存贮路径的函数和功能,并对下载类型做了区分。
    2、分类型下载图片,如果你使用src区分,是下载不了完整的gif图的,这个自行发现吧。
    3、额,感谢视频作者吧,既然视频作者是公开发出的,我这发出链接应该还OK吧
  • 相关阅读:
    异常处理的讨论 CQ
    看看这个Lock可不可靠 CQ
    Smart Client Software Factory(SCSF) 之起步 CQ
    建设高性能网站
    关系数据库还是NoSQL数据库
    另类递归
    cacti监控redis状态
    NoSQL书籍大全
    如果判断function的调用者?
    Error while creating db diagram:Cannot insert NULL into column diagram_id
  • 原文地址:https://www.cnblogs.com/liujian001/p/5145388.html
Copyright © 2011-2022 走看看