• 案例一:爬取网站图片


    这次需要爬取的图片内容为: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)
    

      

  • 相关阅读:
    vTiger 5.2+ 语言包安装教程
    linux iconv方法的使用
    php XMLWriter类的简单示例
    DIV+CSS网站导航条
    php同步方案
    PHP区间分页
    phpcms2008添加上一篇下一篇的功能
    Yii框架整合Ucenter更新与增强
    Linux openSUSE / CentOS / Slackware / Gentoo
    project mail
  • 原文地址:https://www.cnblogs.com/benpao1314/p/11226987.html
Copyright © 2020-2023  润新知