入门级别
需要用到 lxml库和相关知识,用到 代理的知识(没用到代理池)等

lxml 方法知识记录

获取responce 返回的页面数据

tree = etree.HTML(context)

路径查询

// 代表N多级 / 代表一级
tree.xpath("//tr/td/text()") # 查询tr标签下的td标签中的内容

查询 有 某个属性 的

[@属性名]

tree.xpath("//div//th[@id]/text()") #查询有id属性的th标签 text() 为显示内容

查询 某个属性和值 的

[@属性名=‘值’]
tree.xpath("//div//th[@id=‘l1’]/text()") #查询id属性值为 l1 的th标签

获取标签属性值

/@属性名
tree.xpath("//tr/td/@data-title")# 获取 td 标签中 data-title 的属性值

查询 多个属性和值 的

[@属性名=‘值’ and @属性名=‘值’]
tree.xpath("//div//th[@id=‘l1’ and @data-title=‘11’ ]/text()") #查询id属性值为 l1 和 data-title 属性值为 11 的th标签

Python 代码

# _*_ coding : utf-8 _*_
# @Time : 2021/10/13 14:49
# @Author Lpx
# @File : lean_06
# @Project : pythonProject#获取 站长素材的 图片import urllib.request
import urllib.parse
import urllib.error#访问get utf-8类型  请求通用方法
def ajaxGet(url,headers):request = urllib.request.Request(url=url, headers=headers)#代理ip 防止自己的ip被禁封访问proxies = {"http": "180.87.102.68:80"}headler = urllib.request.ProxyHandler(proxies=proxies)opener = urllib.request.build_opener(headler)responce = opener.open(request)context = responce.read().decode("utf-8")return contextptype  = input("请输入要爬取的图片类型名称(例如:dongman;tiankongtupian;huadetupian;haidishijietupian;等):")
endpage  = input("请输入要爬取的页数:")
#素材地址
url_base="https://sc.chinaz.com/tupian/"
#模拟浏览器请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36",
}
#用于存储爬取到的 图片链接地址
list_img_href = []
for n in range(1,int(endpage)+1):try:url = ""if(n == 1):url = "https://sc.chinaz.com/tupian/"+ptype+".html"else:url = "https://sc.chinaz.com/tupian/"+ptype+"_"+str(n)+".html"context = ajaxGet(url,headers)#利用插件 获取想要数据from lxml import etreetree = etree.HTML(context)#获取所有图片链接地址list_img_href= list_img_href + tree.xpath("//div/a[@alt]/@href")print(list_img_href)print("已经爬取:"+str(len(list_img_href))+"张,图片链接地址")except urllib.error.HTTPError:print("未找到相关数据")#遍历列表  获取每张图片下载到本地  //img[@border='0']/@src
# 定义区分图片名称 a = 0
a = 0
for n in list_img_href:a = a +1context = ajaxGet("http:"+n, headers)from lxml import etreetree = etree.HTML(context)# 获取所有图片链接地址img = tree.xpath("//img[@border='0']/@src")print("http:"+img[0])urllib.request.urlretrieve(url="http:"+img[0],filename="D:/sucai/"+ptype+str(a)+".jpg")

本文仅供学习使用!

Python 自学记录(自定义爬取图片类型,页数 爬取站长之家图片)相关推荐

  1. python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...

    本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数. 主要步骤: 1.提示用户输入爬取的内容及页码. 2.根据用户输入,获取网址列表. 3.模拟浏览器向服务器发送请求,获取响应. 4.利用xp ...

  2. 初试python爬虫(简单爬取站长之家第一页图片)

    爬取站长之家第一页图片 爬虫 ----需要借助第三方库 requests beautifulsoup4 html5lib 1.模拟浏览器发送请求 并且接收服务器的响应数据 requests 2.解析并 ...

  3. 爬取汽车之家图片 - scrapy - crawlspider - python爬虫案例

    爬取汽车之家图片 需求:爬取汽车之家某一个汽车的图片 ​ 一. 普通scrapy 第一步 页面分析 目标url: https://car.autohome.com.cn/photolist/serie ...

  4. python多线程爬取淘宝商家图片

    此次爬取淘宝商家图片是为了对相关行业(此处以激光雷达为例)的产品结构以及外观设计进行对比.而淘宝的反爬机制非常强大,能力有限只能有简单点的办法进行爬取.由于淘宝的每一页数据都是存放在js文件里面,所以 ...

  5. 名编辑电子杂志大师教程 | 如何自定义PDF的导入页数?

    问题: 我知道名编辑电子杂志大师是用PDF为源文件的,我想问我能不能只导入PDF特定的几页,比如我只导入PDF的1-10,和25-39页,还有最后一页,请问能做到吗? 答: 可以!页面导入范围在名编辑 ...

  6. python获取word页数_python,_如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?,python - phpStudy...

    如何在 Linux 上使用 Python 读取 word 文件信息(如页数)? R.T. doc 是二进制文件,Python 如何进行读取呢? .docx 可用 python-docx 读取,但如何读 ...

  7. 爬取站长之家域名并保存到mysql

    ![爬取站长之家域名并保存到mysql* 使用环境 python3.73,selenium,mysql,chrome 代码如下, import time import pymysql from sel ...

  8. 爬取站长之家免费简历

    爬取站长之家免费简历 import os import requests from lxml import etree dir_name = './简历模板' if not os.path.exist ...

  9. Word使用编码的方式实现第?页共?页(可自定义起始页和总页数)(步骤超级详细)

    1.第一步在页脚出书写第页 共页. 2.将光标放置在第页两个字中间,按键盘ctrl + F9输入一对花括号(建议用这个快捷键生成花括号,防止不生效),然后在共页之间执行相同的操作. 3.之后在如下图对 ...

最新文章

  1. Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
  2. PHP发起POST DELETE GET POST 请求
  3. 2016年度最受欢迎的100个 Java 库
  4. 关于反射调用方法的一个log
  5. JAVA入门级教学之(myeclipse的使用)
  6. pytorch学习笔记(二十七):Batch-Norm
  7. 对作用域插槽的理解:slot-scope
  8. 详细关闭iiop方法_安卓手机卡顿清理垃圾是没用的,教你关闭几个设置,告别手机迟钝...
  9. android全局屏幕自动旋转,如何在Android中全局强制屏幕方向?
  10. linaro软件源更新问题
  11. java 对象给对象赋值为空_Java对象不使用时赋值null的意义详解
  12. 百度小程序怎么添加到主屏幕将百度小程序放到手机桌面?
  13. python编程语言进化_编程语言的进化史和分类
  14. selenium-爬取公众号0.2
  15. 最常见的解决方法:error:C2059 语法错误:“using namespace”
  16. 电影院3d是什么模式的_3D的完整形式是什么?
  17. 一对一直播软件如何盈利?
  18. java与go对接AES-GCM加解密
  19. 《首席执行官》观后感
  20. 【个人kivy学习笔记】

热门文章

  1. [HDU6598] Harmonious Army(网络流方程建图)
  2. 企业服务年年这么多“大会”,真的都了解企业数字化需求?
  3. matplotlib 设置坐标轴的刻度显示
  4. Tim/QQ登录超时,请检查您的网络或者本机防火墙设置
  5. 使用阻塞式队列处理大数据
  6. 怎么将手机上保存的CAD图纸发送给好友
  7. Shellshock漏洞回顾与分析测试
  8. visio如何画任意曲线
  9. 男的依然是禽兽,女的却已禽兽不如了(转自凯迪)
  10. PyTorch深度学习:60分钟闪电战