案例一:爬取网站图片


这次需要爬取的图片内容为:www.dbmeinv.com这个网站的图片。

一、爬取一页的图片内容

import requests
from lxml import etree
import  os
#1.获取第一页的url url="https://www.dbmeinv.com/?pager_offset=1"
#获取头的原因是为了解决反扒机制。通过User-Agent可以解决70%~80%的反扒。 headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"} #2.发送请求,接受响应 response=requests.get(url,headers=headers) #3.提取数据 #生成一个xpath解析对象 selector=etree.HTML(response.text) #获取第一页所有图片的URL列表 url_list=selector.xpath("//div/a/img/@src") #再次发送请求,获取图片内容
#定义一个path变量用于存放图片位置 path="newpath" #遍历第一页中所有图片的url列表 for url in url_list: if not os.path.exists(path): os.makedirs(path) #发送请求,接受响应 data = requests.get(url, headers = headers) #保存数据,写入要用二进制 with open(path + "/"+url[-7:],"wb")as f: f.write(data.content)

  说明:解决反扒,加入请求参数。例如通过User-Agent可以解决70%~80%的反扒问题。

二,爬取网站中所有页的图片

import requests
from lxml import etree
import  os
#1.url
url_list=["https://www.dbmeinv.com/?pager_offset={}".format(i) for i in range(1,10)]
headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}
#2.发送请求,接受响应
for url in url_list:
	response=requests.get(url,headers=headers)

#3.提取数据
#生成一个xpath解析对
	selector=etree.HTML(response.text)

#获取图片的URL列表
	url_list2=selector.xpath("//div/a/img/@src")
#再次发送请求,获取图片内容
	path="newpath"

	for url in url_list2:
		if not os.path.exists(path):
			os.makedirs(path)
		#发送请求,接受响应
			data = requests.get(url, headers = headers)
		#保存数据,写入要用二进制
		with open(path + "/"+url[-7:],"wb")as f:
			f.write(data.content)

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM