网页爬虫抓取百度图片(刚刚开始python3简单的爬虫,爬虫一下贴吧的图片吧。)
优采云 发布时间: 2021-12-09 08:23网页爬虫抓取百度图片(刚刚开始python3简单的爬虫,爬虫一下贴吧的图片吧。)
刚开始学习python爬虫技术,后来想在网上找一些教程看看。谁知道我搜的时候,大部分都是python2写的,新手,一般喜欢装新版本。于是写了一个简单的python3爬虫,爬取贴吧的图片。话不多说,开始吧。
先简单说一下知识。
一、什么是爬虫?
采集 网页上的数据
二、学习爬虫的作用是什么?
做案例分析,做数据分析,分析网页结构……
三、爬虫环境
要求:python3x pycharm
模块:urllib、urllib2、bs4、re
四、 爬虫思路:
1. 打开网页,获取源代码。
*由于多人同时爬取某个网站,会造成数据冗余和网站崩溃,所以部分网站被禁止爬取,会返回403 access denied错误信息。----无法获取想要的内容/请求失败/IP容易被封......等
*解决方案:伪装-不要告诉网站我是脚本,告诉它我是浏览器。(添加任意浏览器的header信息,冒充浏览器),既然是简单的例子,那我们就不做这些无聊的操作了。
2. 获取图片
*查找功能:只查找第一个目标,查询一次
*Find_all 函数:查找所有相同的目标。
解析器可能有问题。我们不会谈论它。有问题的同学百度,有一堆解决办法。
3. 保存图片地址和下载图片
*一种。使用urlib---urlretrieve下载(保存位置:如果和*.py文件保存在同一个地方,那么只需要文件夹名,如果在别处,则必须写绝对路径。)
算了,废话不多说,既然是简单的例子,那我就直接贴代码了。相信没有多少人看不懂。
顺便提一下:您可以不定期使用 BeautifulSoup;爬虫使用常规,只需选择Bs4和xpath之一。当然,也可以组合使用,还有其他种类。
抓取地址:
*敏*感*词*的壁纸图片。
代码显示如下:
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)) #从网页源代码中分析并下载保存图片
最终效果如下:
好了,教程到此结束。
参考地址:
(ps:本人也是python新手,文章如有错误请见谅)