import os
import time
import urllib.request
import urllib.parse
from lxml import etree # 构建面向对象的代码方式
class ZhanZhang(object): # 实例化参数,让参数能够全局调用
def __init__(self,url,headers):
self.headers=headers
self.url=url
self.opener=urllib.request.build_opener(urllib.request.HTTPHandler()) # 构建请求对象
def request(self):
request=urllib.request.Request(self.url,headers=self.headers)
opener = self.opener
response=opener.open(request)
return response
# 解析网页标签,获取图片地址
def paserHtml(self):
response=self.request()
html=response.read().decode("utf8")
htmlInfo=etree.HTML(html)
# xpath解析网页标签
parserXpath =htmlInfo.xpath('//div[@id="container"]/div[@class]/div/a')
# 获取标签的href属性
imgUrl=[iHref.get("href") for iHref in parserXpath]
# 获取图片的名字
imgName=[iName.get("alt") for iName in parserXpath]
num = len(imgUrl)
imgData={"imgUrl":imgUrl,"imgName":imgName,"num":num}
return imgData # 下载请求图片
def download(self):
imgData=self.paserHtml()
if not os.path.exists("金毛"):
os.mkdir("金毛")
try:
for index in range(imgData["num"]):
print("正在下载第%d张图片"%index)
lastUrl =imgData["imgUrl"][index]
filename=imgData["imgName"][index]+".png"
filepath=os.path.join("金毛",filename)
newresponse_html= urllib.request.urlopen(lastUrl).read().decode("utf8")
newTree=etree.HTML(newresponse_html)
newUrl=newTree.xpath("//div[@class='img_text']/span/a")[0].get("href")
urllib.request.urlretrieve(newUrl,filepath)
time.sleep(1)
except Exception as e:
print("数据请求完成") # 主函数,调用类方法
def main():
url = "http://sc.chinaz.com/tupian/jinmaoquantupian.html"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
zhanzhang_photo=ZhanZhang(url,headers)
zhanzhang_photo.download() if __name__ == '__main__':
main()

爬虫学习(十四)——xpath项目实践的更多相关文章

  1. 201671010447 杨露露 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...

  2. 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 团队名称 快活帮 作业学习目标 (1)掌握软 ...

  3. 201671010449 杨天超 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 1.掌握软件评审流程及内容 2.个人总结 实验一问题解答 实验一问题链接:https://ww ...

  4. 201671010450-姚玉婷-实验十四 团队项目评审&课程学习总结

    项目 内容 所属科目 软件工程http://www.cnblogs.com/nwnu-daizh 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11093584. ...

  5. 201671010456-张琼 实验十四 团队项目评审&课程学习总结

    博文简要信息表 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu- ...

  6. 201671030128周琳 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...

  7. 201671030103 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 任课教师首页链接 这个作业的要求在哪里 作业链接地址 课程学习目标 (1)掌握软件项目评审会流程 (2)反思总结课程学习内容 任务一: 团队项目Github仓库中提交 ...

  8. 201671030126 赵佳平 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于那个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...

  9. 201671010404+陈润菊 实验十四 团队项目评审课程&学习总结

    个人学习总结博客 这个作业属于哪个课程 软件工程任教教师 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11093584.html 作业学习目标 (1 ...

  10. 201671010426 孙锦喆 实验十四 团队项目评审&课程学习总结

    徐明锦 徐明锦 2 95 2019-06-30T14:54:00Z 2019-06-30T14:54:00Z 9 608 3472 28 8 4072 14.00 Clean Clean false ...

随机推荐

  1. (转)python 集合,列表,元组,字符串,文件等操作总结

    原文:http://www.cnblogs.com/songqingbo/tag/python%E5%87%BD%E6%95%B0/

  2. pat1041. Be Unique (20)

    1041. Be Unique (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Being uniqu ...

  3. JEECMS站群管理系统-- 标签的配置流程

    以cms_content_list为例,首先,每一个标签的声明都是在jeecms-context.xml中进行的, <?xml version="1.0" encoding= ...

  4. httpd.conf 配置

    # # This is the main Apache server configuration file. It contains the # configuration directives th ...

  5. windows常用命令行总结

    cmd下的命令行 1.查看当前目录下的子目录 dir   或 dir /b 类似Linux 下的  ls 或者 ls -l 2.盘符切换  d: 3.进入目录 cd [目录名] 退一个目录 cd .. ...

  6. 如何在eclipse查看jdk源码(src.zip)

    在eclipse编写代码的过程中,有时候想点进去看看jdk的源码,了解下里面具体的实现.在没有任何配置的情况下,应该是看不到源码的. 其实只需要把jdk安装目录下的src.zip压缩包添加到eclip ...

  7. IntelliJ IDEA详细配置和使用教程(转)

    http://blog.csdn.net/m_m254282520/article/details/78900238 关闭Intellij IDEA自动更新 在File->Settings-&g ...

  8. Django auth组件拓展 关联外部信息---------------------------- Profile 模式

    https://docs.djangoproject.com/en/2.1/topics/auth/customizing/ 官方文档. 网上的get_profile 方法不好用太假了 可能我没用明白 ...

  9. MongoDB之mongodb.cnf配置

    # mongodb3.2.1 的主配置文件,将此文件放置于 mongodb3.2.1/bin 目录下 # hapday 2016-01-27-16:55 start # 数据文件存放目录 dbpath ...

  10. Java Knowledge series 1

    Programming language evolves always along with Compiler's evolvement JVM as Additional Indirection I ...