网络爬虫,爬取某网站的某个网页的所有图片。
python的网络爬虫是很强大的。
import urllib.request
import re
path="http://www.xiaohuar.com/2014.html"
content=urllib.request.urlopen(path).read()
content=content.decode("gb2312","ignore")
imgRe=re.compile(r'src="(.+?\.jpg)"')
imagePaths=imgRe.findall(content)
i=0
for imagePath in imagePaths:
if "http:" not in imagePath:
imagePath="http://www.xiaohuar.com"+imagePath
i+=1
urllib.request.urlretrieve(imagePath,f'E:\\Kingjava\\images\\{i}.jpg')
print(i)
爬取的是一个校花网的页面图片
1.path:是一个网站的网址,注意,一定是要有带网页名字的。否则,不知道是爬取哪个?
因为,爬虫终究爬取的是网页。
2.urllib.request.urlopen(path).read()
读取整个网页
3.content=content.decode("gb2312","ignore")
网页具有自身的编码格式
ignore:忽略
注意:这不是在给content设置编码格式,而是复制给本身
4.
imgRe=re.compile(r'src="(.+?\.jpg)"')
正则表达式
寻找后缀为.jpg的图片,也可以根据需要修改
5.
imagePaths=imgRe.findall(content)
找到所有.jpg图片路径
6.
foreach imagePaths
根据网站的特殊性,某些图片没有完整路径,需要进行判断
urllib.request.urlretrieve(imagePath,f'E:\\Kingjava\\images\\{i}.jpg')
一一根据路径下载到指定的某个文件夹
爬虫的框架:
scrapy
上述所做的只是简单的爬取图片
真正的需求爬取,是指定的到很多的网爬取一些重要的信息。然后,进行信息对比,从而得到正确的答案。
不得不承认,baidu是搜索引擎是超一流的,某猜测,或者说肯定,baidu的搜索一定存在着爬取技术。