Python爬虫抓取糗百的图片,并存储在本地文件夹
思路:
1.观察网页,找到img标签
2.通过requests和BS库来提取网页中的img标签
3.抓取img标签后,再把里面的src给提取出来,接下来就可以下载图片了
4.通过urllib的urllib.urlretrieve来下载图片并且放进文件夹里面(第一之前的准备工作就是获取当前路径然后新建一个文件夹)
5.如果有多张图片,不断的重复3-4
由于爬虫写得少,通过自己的调试,终于写了出来了
下面直接上代码:
#coding = 'utf-8'
import requests
from bs4 import BeautifulSoup
import urllib
import os
import sys
reload(sys)
sys.setdefaultencoding("utf-8") if __name__ == '__main__':
url = 'http://www.qiushibaike.com/'
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
imgs = soup.find_all("img") _path = os.getcwd()
new_path = os.path.join(_path , 'pictures')
if not os.path.isdir(new_path):
os.mkdir(new_path)
new_path += '\ ' try:
x = 1
if imgs == []:
print "Done!"
for img in imgs:
link = img.get('src')
if 'http' in link:
print "It's downloading %s" %x + "th's piture"
urllib.urlretrieve(link, new_path + '%s.jpg' %x)
x += 1 except Exception, e:
print e
else:
pass
finally:
if x :
print "It's Done!!!"
接下来上结果:
python3中的版本,略有有一点点不同,就是下载图片的方法需要加上request,然后才能使用urlretrieve方法进行下载
#!/usr/bin/python3
#coding = 'utf-8' import requests
from bs4 import BeautifulSoup
import urllib
import os
import sys
#reload(sys)
#sys.setdefaultencoding("utf_8") if __name__ == '__main__':
url = 'http://www.qiushibaike.com/'
res = requests.get(url)
res.encoding = 'utf-8'
print (res)
soup = BeautifulSoup(res.text,'html.parser')
#imgs = soup.find_all('img', attrs={'class': 'item_img'})
imgs = soup.find_all('img') _path = os.getcwd()
new_path = os.path.join(_path,'pictures\\')#需要添加斜杠,才能将图片放进单独的文件夹里面
print(new_path) if not os.path.isdir(new_path):
os.mkdir(new_path) #new_path = new_path + '\'
#print (str(new_path)) try:
x = 1
if imgs == []:
print ("Done!")
print (len(imgs))
for img in imgs:
link = img.get('src')
link = 'http:' + link
#print (link)
if True:
print ("It's downloading %s" %x + "th's piture")
#python3如下使用urlretrieve
#_new111 = new_path + '%s.jpg'%5
#print (_new111)
urllib.request.urlretrieve(link,new_path + '%s.jpg' %x)
x += 1 except Exception:
pass
# else:
# pass
finally:
if x:
print ("It's Done!")
结果都是一样,就不再另外贴结果截图了
总结:
虽然一开始思路不清晰,而且对怎样把图片保存下来,都不是很熟
但是经过自己的思考,只要思路清楚了,确定了方向就好办了,至于函数不会用的话,可以直接百度查,很方便的
总而言之,写程序之前一定要有思路,边写边想思路是不行的,那样容易返工
不过最后还是写出来了,哈哈
也请大家来共同学习和指正
----------------------
转载的话请大家注明出处哦,谢谢了
Python爬虫抓取糗百的图片,并存储在本地文件夹的更多相关文章
- Python爬虫——抓取糗百段子
在别人博客里学习的 抓取糗百段子,由于糗百不断的更新,代码需要改正. 抓取网页:http://www.qiushibaike.com/hot/page/1 修改后的代码如下: # -*- coding ...
- Python 爬虫: 抓取花瓣网图片
接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- Python爬虫----抓取豆瓣电影Top250
有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python学习-抓取知乎图片
#!/bin/usr/env python3 __author__ = 'nxz' """ 抓取知乎图片webdriver Chromedriver驱动需要安装,并指定d ...
- python爬虫抓取哈尔滨天气信息(静态爬虫)
python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...
- Python爬虫 —— 抓取美女图片
代码如下: #coding:utf-8 # import datetime import requests import os import sys from lxml import etree im ...
随机推荐
- Struts1.x有两个execute方法,不要重写错哦HttpServletRequest才是对的(转)
Struts1.x 的 Action 有两个 execute 哦,小心搞错! by agate - Published: 2008-05-01 [9:42 下午] - Category: 程序编码 不 ...
- 智能指针weak_ptr解决循环依赖问题
#include <iostream> #include <memory> class Woman; class Man{ private: std::weak_ptr< ...
- c# winform 窗体起始位置 设置
窗体起始位置为顶部中间,WinForm居中显示: ; ; this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定 thi ...
- WPF中TreeView的使用
因为项目中需要用到TreeView控件,由于是第一次在WPF中用到,因此事先在网上搜了很多关于数据绑定的方法介绍,个人经过实际应用,觉得WPF中的HierarchicalDataTemplate定义模 ...
- Struts2中Action由自己与由Spring管理的区别
struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建. 这导致在两种情况下struts.xml配置文件的略微差异. 假如: ...
- .NET并行编程1 - 并行模式
设计模式——.net并行编程,清华大学出版的中译本. 相关资源地址主页面: http://parallelpatterns.codeplex.com/ 代码下载: http://parallelpat ...
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 http://www.jb51.net/css/383986.html
在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 复制代码 代码如下: <!Do ...
- PSP(11.24~11.30)
27号 类别c 内容c 开始时间s 结束e 中断I 净时间T 作业 构建执法.写博客 14:00 14:40 0m 40m 28号 类别c 内容c 开始时间s 结束e 中断I 净时间T java 编码 ...
- 转(zip文件格式说明)
zip文件由三部分组成:压缩的文件内容源数据.压缩的目录源数据.目录结束标识结构 1. 压缩的文件内容源数据: 记录着压缩的所有文件的内容信息,其数据组织结构是对于每个文件都由file header ...
- eworkflow工作流系统在iis中发布
eworkflow工作流系统在iis中发布 win7下面的iis发布eworkflow工作流系统,要带虚拟目录的,如发布成http://localhost/eworkflow/login.aspx这样 ...