当前位置: 首页 > news >正文

php做的静态网站怎么加密精密导航

php做的静态网站怎么加密,精密导航,注册城乡规划师报考条件,超链接友情外链查询python项目实战——下载美女图片 文章目录 python项目实战——下载美女图片完整代码思路整理实现过程使用xpath语法找图片的链接检查链接是否正确下载图片创建文件夹获取一组图片的链接获取页数 获取目录页的链接 完善代码注意事项 完整代码 import requests import re import…python项目实战——下载美女图片 文章目录 python项目实战——下载美女图片完整代码思路整理实现过程使用xpath语法找图片的链接检查链接是否正确下载图片创建文件夹获取一组图片的链接获取页数 获取目录页的链接 完善代码注意事项 完整代码 import requests import re import pprint from lxml import etree import os# 拿到具体页面的链接下载一张图片 def download_images(url):rot requests.get(urlurl)rot.encodingrot.apparent_encoding# print(rot.text)html etree.HTML(rot.text)try:title html.xpath(//div[classImageBody]//img/alt)links html.xpath(//div[classImageBody]//img/src)# 显示下载内容# print(title[0])# print(links[0])number1 html.xpath(//li[classthisclass]/a[href]/text())# print(title[0]str(number1[0]))# print(links[0])# 创建文件夹if not os.path.exists(f图片/{title[0]}):os.mkdir(f图片/{title[0]})pic requests.get(urllinks[0]).contentwith open(f图片/{title[0]}/{title[0]}{str(number1[0])}.jpg,wb) as f:f.write(pic)print(f已下载……{title[0]}{str(number1[0])}) # 提示下载成功except:print(f出错了......{url})# 给第一个图片的链接就可以得到其他图片的链接 def link_of_pictures(url):rot requests.get(urlurl)# print(url) # 检查当前链接是否正确rot.encodingrot.apparent_encoding# print(rot.text)html etree.HTML(rot.text)features re.findall(xingganmeinv/(\\d).htm,url)[0]# print(features) # 这一组的特征值比如http://www.umeituku.com/meinvtupian/xingganmeinv/208585.htm里面的208585# 获取页数numbers html.xpath(//div[classNewPages]//ul//li//a/text())number re.findall(共(\\d)页,numbers[0])# print(number[0]) # 页数download_images(url)for i in range(2,int(number[0]) 1):# 得到了这组图片的其他链接urll re.sub(rxingganmeinv/.*, fxingganmeinv/{features}_{i}.htm, url)# print(urll)download_images(urll)# 得到这个系列的单页的链接 url https://www.umeituku.com/meinvtupian/ header {user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0} rt requests.get(urlurl,headersheader) rt.encoding rt.apparent_encoding # apparent_encoding可以自己判断网页的编码方式然后再传给encoding进行解析 # print(rt.text) html etree.HTML(rt.text) title html.xpath(//div[classTypeList]//div[classListTit]/text()) links html.xpath(//div[classTypeList]//a[classTypeBigPics]/href) # pprint.pprint(title) # pprint.pprint(links) for item in links:link_of_pictures(str(item))这个代码还能修改但是作为掌握爬取网页图片来说已经足够了 这里的第三个模块是获取目录页的总链接也就是第一页所有组的第一张还能再次翻页再次使用for循环就可以实现了 思路整理 获取图片页源代码提取所有图片的链接保存一组图片爬取目录页源代码下载图片翻页下载 实现过程 首先是下载一张图片这里最好是找个简单点的网址不要去找太火的有反爬机制对于小白来说有点难 因为我折腾了好几天提取的链接就是不能独立下载 脑子突然开窍换了个网站进度嗖嗖的 这里不推荐网站了以免对网站造成干扰 想要可以去代码里面找 使用xpath语法找图片的链接 这里去看网页源代码看看图片是否包含在源代码里面如果在源代码里面是最简单的情况 这里使用requests库的get请求可以得到网页的源代码找到了图片的位置就是在源代码里面如果不在源代码里面需要使用抓包的方式获取图片的链接 检查链接是否正确 我们从源代码找到图片的链接之后复制链接去浏览器查看如果点开就是一张图片那就成功了如果不是就换网站 下载图片 我们将得到的图片链接再次给requests模块保存图片的方式是二进制码流 pic requests.get(urllinks[0]).content对就是在requests函数后面再加一个content 就可以得到图片了现在这个图片被我们保存在pic对象里面 再使用文件操作就可以把图片保存在本地文件了 因为是二进制码流我们在保存文件的时候使用wb的方式写入 with open(f图片/{title[0]}/{title[0]}{str(number1[0])}.jpg,wb) as f:f.write(pic)print(f已下载……{title[0]}{str(number1[0])}) # 提示下载成功能下载图片之后把上面这部分独立出来做成函数让别的地方提供网址来使用 # 拿到具体页面的链接下载一张图片 def download_images(url):rot requests.get(urlurl)rot.encodingrot.apparent_encoding# print(rot.text)html etree.HTML(rot.text)try:title html.xpath(//div[classImageBody]//img/alt)links html.xpath(//div[classImageBody]//img/src)# 显示下载内容# print(title[0])# print(links[0])number1 html.xpath(//li[classthisclass]/a[href]/text())# print(title[0]str(number1[0]))# print(links[0])# 创建文件夹if not os.path.exists(f图片/{title[0]}):os.mkdir(f图片/{title[0]})pic requests.get(urllinks[0]).contentwith open(f图片/{title[0]}/{title[0]}{str(number1[0])}.jpg,wb) as f:f.write(pic)print(f已下载……{title[0]}{str(number1[0])}) # 提示下载成功except:print(f出错了......{url}) 这里我使用了try和except来进行异常捕获 因为在网站第四组图片的第10页是空图片网址有效但是没有找到图片 这里让程序进行一个报错并显示出错的网址就可以自己查看原因了 如下图所示倘若不使用异常捕获程序在这个报错的地方就会中断 一开始我还想少保存一张比如最后一张不保存那样就浪费数据了 创建文件夹 因为这里的图片都是一组一组的所以采用创建文件夹的方式把一组图片放在一个文件夹里面这个文件夹里面放这一组图片这个文件夹使用这组图片的标题命名因为这组图片没有自己的名字我们还需要人工加个序号 就像上图里面的某某1某某2等等 使用os库创建文件夹这个库可以获取程序运行的操作系统根据不同的操作系统创建不同的文件夹 if not os.path.exists(f图片/{title[0]}):os.mkdir(f图片/{title[0]})这里是使用if判断语句判断文件夹是否存在如果不存在就使用os.mkdir创建一个 获取一组图片的链接 仔细检查一下发现对于一组图片来说他们的网址有规律的变化 比如meinvtupian/xingganmeinv/208585.htm xingganmeinv/208585_2.htm 只有后面发生了变化 我们可以使用字符串替换函数配合for循环生成这组图片的链接 # 给第一个图片的链接就可以得到其他图片的链接 def link_of_pictures(url):rot requests.get(urlurl)# print(url) # 检查当前链接是否正确rot.encodingrot.apparent_encoding# print(rot.text)html etree.HTML(rot.text)features re.findall(xingganmeinv/(\\d).htm,url)[0]# print(features) # 这一组的特征值比如http://www.umeituku.com/meinvtupian/xingganmeinv/208585.htm里面的208585# 获取页数numbers html.xpath(//div[classNewPages]//ul//li//a/text())number re.findall(共(\\d)页,numbers[0])# print(number[0]) # 页数download_images(url)for i in range(2,int(number[0]) 1):# 得到了这组图片的其他链接urll re.sub(rxingganmeinv/.*, fxingganmeinv/{features}_{i}.htm, url)# print(urll)download_images(urll)这里的features就是变化的地方我管他叫特征值你们可以随便起名字 获取页数 这里我们可以从源代码里面找到这一组图片的页数 然后根据页数生成链接再让上面的函数去访问图片 错误示范 一开始的时候发现在图片的下面可以选择页数点击第几页就会跳转根据这个思路好像可以把这个页数链接爬下来制成列表再挨个访问 对于页数少的还可以但是这个直接跳转只能最多显示7页哪怕共10页从第一页最多跳转到第7页 所以没办法直接从页面获取链接只能根据规律自己改写链接 for i in range(2,int(number[0]) 1):# 得到了这组图片的其他链接urll re.sub(rxingganmeinv/.*, fxingganmeinv/{features}_{i}.htm, url)# print(urll)download_images(urll)也就是得到页数进行n次循环就好了 获取目录页的链接 从目录页可以看到多组图片的第一页直接点击也可以完成跳转 检查源代码发现每组图片的首页链接可以被爬取 # 得到这个系列的单页的链接 url https://www.umeituku.com/meinvtupian/ header {user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0} rt requests.get(urlurl,headersheader) rt.encoding rt.apparent_encoding # apparent_encoding可以自己判断网页的编码方式然后再传给encoding进行解析 # print(rt.text) html etree.HTML(rt.text) title html.xpath(//div[classTypeList]//div[classListTit]/text()) links html.xpath(//div[classTypeList]//a[classTypeBigPics]/href) # pprint.pprint(title) # pprint.pprint(links) for item in links:link_of_pictures(str(item))这里的url是目录页的链接 links是每组的首页链接列表 完善代码 这里的获取目录页链接还能再改把这个操作改成函数还能再写for循环访问所有的目录页 貌似有成百上千个这里作为代码展示就不写了有能力的可以试试 注意事项 这段代码不能独立工作必须放在项目里面 这个代码运行成功之后我就想做成exe程序但是里面涉及了文件保存的地址还有一些库函数 ai帮忙改了一下,让程序获取文件所在的位置倒是解决了必须放在项目里面的问题但是依旧不能打包exe或者文件夹 import requests import re import pprint from lxml import etree import os# 获取当前脚本的绝对路径 current_directory os.path.dirname(os.path.abspath(__file__)) image_directory os.path.join(current_directory, 图片)# 拿到具体页面的链接下载一张图片 def download_images(url):rot requests.get(urlurl)rot.encoding rot.apparent_encodinghtml etree.HTML(rot.text)try:title html.xpath(//div[classImageBody]//img/alt)links html.xpath(//div[classImageBody]//img/src)number1 html.xpath(//li[classthisclass]/a[href]/text()) # 在这里提取 number1# 确保 title 和 number1 都有值if not title or not number1:print(f未能提取标题或编号URL: {url})return# 创建文件夹image_folder os.path.join(image_directory, title[0])if not os.path.exists(image_folder):os.makedirs(image_folder) # 使用 makedirs 可以创建多层目录pic requests.get(urllinks[0]).contentwith open(os.path.join(image_folder, f{title[0]}{str(number1[0])}.jpg), wb) as f:f.write(pic)print(f已下载……{title[0]}{str(number1[0])}) # 提示下载成功except Exception as e:print(f出错了......{url}, 错误信息: {e})# 给第一个图片的链接就可以得到其他图片的链接 def link_of_pictures(url):rot requests.get(urlurl)rot.encoding rot.apparent_encodinghtml etree.HTML(rot.text)features re.findall(xingganmeinv/(\\d).htm, url)[0]# 获取页数numbers html.xpath(//div[classNewPages]//ul//li//a/text())number re.findall(共(\\d)页, numbers[0])download_images(url)for i in range(2, int(number[0]) 1):urll re.sub(rxingganmeinv/.*, fxingganmeinv/{features}_{i}.htm, url)download_images(urll)# 得到这个系列的单页的链接 url https://www.umeituku.com/meinvtupian/ header {user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0} rt requests.get(urlurl, headersheader) rt.encoding rt.apparent_encoding html etree.HTML(rt.text) title html.xpath(//div[classTypeList]//div[classListTit]/text()) links html.xpath(//div[classTypeList]//a[classTypeBigPics]/href)for item in links:link_of_pictures(str(item))
http://www.hkea.cn/news/14391575/

相关文章:

  • 网站建设费用属于什么科目哪些做图片赚钱的网站
  • 网站三大标签修改注意事项怎样自己做公司网站
  • 重庆免费建网站php怎么做网站后台
  • 新赣州房产网上海外贸seo推广
  • 广东中国移动网站修改WordPress图片上传
  • 专做美妆的网站专业手机网站建设哪家好
  • 用ps做美食网站做网站设计怎么提升
  • 长沙开发网站的公司昆明市网站推广
  • 合江网站建设电商跟开网店是一样吗
  • 品牌网站设计公司哪家好wordpress模板淘宝客模板下载
  • 开封网站建设兼职北京建设高端网站的
  • 深圳网站建设大公司华为展厅设计方案
  • 免费个人网站建站能上传视频吗机械毕业设计代做网站
  • 怎么制作h5棋牌软件许昌seo推广
  • 成都网站建设众成联邦网站原型图大小
  • 气象网站建设管理总结wordpress 盗链
  • 做爰片免费观看网站wordpress建单页面论坛
  • 辽阳低价网站建设公司互联网保险中介平台
  • 个人做网站的好处微信小商店怎么分销
  • 黄石城乡建设网站网建天地小区是电力局的吗
  • 软件开发包含网站开发wordpress 菜单 文章列表
  • 网站页面html静态化是什么意思石材企业网站源码
  • 携程的网站建设高端产品网站
  • 上海建设网站哪家好百度宣传做网站多少钱
  • 网站竞价 英文镇江企业宽带
  • 山东网站建设负面消息处理网站雪花特效
  • 网站建网站建设企业电话上海医疗器械网站前置审批
  • 网站建设交印花税昆明模板建站代理
  • 版面设计素材网站wordpress get_most_viewed
  • 搭建网站免费空间百度收录提交接口