鸟与虫(一)图片,让我爬一下,就一下

  • 分享一下我爬千图网的步骤,加深影响,如果能帮助大家的我也很开心,有什么不足的请提提意见,谢谢。
  • 就是一个简简单单的爬虫,比如什么十行做爬虫,什么最简单的爬虫实例……

  • emmm我会用到requests库,和BeautifulSoup,(正则表达式我还没有用熟(ૢ˃ꌂ˂ૢ)。)
    这两库教程也挺多,挺全,我不太熟呢还,就不多说了。

开始:

'''
    根据知乎大神

    代码作者:高佳乐

'''

import requests           ##导入requests库
from bs4 import BeautifulSoup   ##导入BeautifulSoup
qiantu = requests.get('http://www.58pic.com/')  ##requests.get是向服务器发出请求,就是,hi 服务器,我要千图网的源码
html = qiantu.content        ##把获取的内容输出一下,不过使用content是二进制
soup = BeautifulSoup(html,'html.parser')  ##用BeautifulSoup对HTML解析,html.parser就是解析格式是html
print(soup.prettify())##这个是规范输出一下
imgs = soup.select('img[class="scrollLoading"]',limit=10)##上边输出后会发现图片都在img中,然后用BeautifulSoup里的select找到img标签class是scrollLoading属性的,然后获取10个
num = 0 #利于下边的数,我喜欢0开始,都懂得。
for i in imgs:    ##因为上边img获取的是列表,要用遍历
  chun = i.get('data-url')##这个get(data-url)是只要属性是data-url属性的值
  print('这是%d张:%s'%(num,chun))##方便计数,i.get('data-url')是因为上边获取的是带标签的节点,
  qingqiu = requests.get(chun)##因为上边只是获取了路径,所以要向服务器请求图片的内容。
   try:                                                    ##异常处理
        fp = open('pic\\'+str(num)+'.jpg','wb')              ##fp打开一个文件,我这里没有文件就是会创建一个文件,pic\路径+num.jpg名字+wb可写模式
        fp.write(qingqiu.content)                            ##在fp里边写入qingqiu的二进制因为一张图片是由二进制组成
        fp.close()                                           ##关闭fp文件
        print('第%d张图片下载完成'%num)                         ##输出第--张图片下载完毕
        num+=1                                               ##num+1 以便记录
    except:                                                 ##异常处理
        print("这张图片不让下载")                               ##如果错误就是这张图片不让下载
print('下载完成')                                         ##完成后是下载完毕

好了我的第一个小爬虫就到这里了,有什么不足的或者错误的地方请指出。emmm下一次见

猜你喜欢

转载自blog.csdn.net/adorable_new/article/details/81112235
今日推荐