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

深圳网站建设知名公司阿凡达做网站电话

深圳网站建设知名公司,阿凡达做网站电话,网页登录页面设计模板,网络推广宣传今天我们结合前面学习的知识#xff0c;进行一个实例#xff0c;从网络上下载图片#xff0c;话说我们平时闲来无事会上煎蛋网看看新鲜事#xff0c;那么#xff0c;熟悉煎蛋网的朋友一定知道#xff0c;这里有一个 随手拍 的栏目#xff0c;我们今天就来写一个爬虫进行一个实例从网络上下载图片话说我们平时闲来无事会上煎蛋网看看新鲜事那么熟悉煎蛋网的朋友一定知道这里有一个 随手拍 的栏目我们今天就来写一个爬虫自动抓取每天更新的 随手拍。 要写爬虫首先要做的第一件事就是踩点主动发现网页之间的规律还有图片链接之间有什么规律例如说该网站的链接形式为http://jandan.net/ooxx/page-‘页码数’#comments页码数应该小于等于当天的页码数即目前最大页码数 1.那我们怎样获取目前最大的页码数呢最新页码我们在页码[77]这个位置点击右键审查元素看到了span classcurrent-comment-page[77]/span 我们完全可以通过搜索 current-comment-page 在后面偏移 3 位就可以得到 77 这个最新的页面因为你不能去输入一个具体的数字因为这里的数字每天都会改变。 2.我们在图片的位置点击右键审查元素发现了图片的地址都是来自于新浪然后都在 img 标签里我们就可以使用 img src 作为关键词来进行查找搜索到了图片的地址就可以参照我们之前下载一只猫的例子了。把下面图片的地址用 urlopen() 打开然后将其 save 到一个文件里去二进制就可以了。 img srchttp://ww3.sinaimg.cn/mw600/006XNEY7gy1fy62ba9d6cj30u00u0x6p.jpg stylemax-width: 480px; max-height: 750px; 我们弄清楚了以上几点就可以开始写我们的爬虫程序啦..... 我们抓取前10页的图片保存到指定的本地文件夹中 下面是老师讲的代码 #从煎蛋网的随手拍栏目下载图片 import urllib.request import os import random def url_open(url): req urllib.request.Request(url) req.add_header(User-Agent, Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36) #使用代理就加入下面五行 #proxies [119.6.144.70:81, 111.1.36.9:80, 203.144.144.162:8080] #proxy random.choice(proxies) #proxy_support urllib.request.ProxyHandler({http:proxy}) #opener urllib.request.build_opener(proxy_support) #urllib.request.install_opener(opener) response urllib.request.urlopen(url) html response.read() return html def get_page(url): #得到最新页面的页码数 html url_open(url) html html.decode(utf-8) #因为要以字符串的形式查找所以要 decode #然后就是查找 html 中的 current-comment-page a html.find( current-comment-page) 23 #加上 23 位偏移就刚到到页码数的第一位数字 b html.find(], a) #找到 a 位置之后的第一个方括号所在位置的索引坐标 return html[a : b] #这就是最新的页码数啦 def find_imgs(url): #给一个页面的链接返回所有图片地址组成的列表 html url_open(url).decode(utf-8) img_addrs [] #声明一个保存图片地址的列表 #查找图片地址 a html.find(img src) while a ! -1: b html.find(.jpg, a, a255) #在 a 到 a255 区间找 .jpg防止有不是 .jpg 格式的图片 #如果 b 找不到b 就返回 -1 if b ! -1: img_addrs.append(html[a9: b4]) else: b a 9 a html.find(img src, b) return img_addrs def save_imgs(folder, img_addrs): for each in img_addrs: filename each.split(/)[-1] with open(filename, wb) as f: img url_open(each) f.write(img) def download_figures(folder figures, page 10): os.mkdir(folder) #创建文件夹 os.chdir(folder) url http://jandan.net/ooxx/ #随手拍栏目的链接也是最新页面的链接 page_num int(get_page(url)) #得到最新页面的页码数 for i in range(page): page_url url page- str(page_num) #comments #得到要爬取的页面的链接 print(page_url) img_addrs find_imgs(page_url) #得到页面所有图片的地址保存为列表 save_imgs(folder, img_addrs) #保存图片到本地文件夹 page_num - 1 #逐步找到前几个页面 if __name__ __main__: download_figures() 但是现在煎蛋网用这段代码是无法实现的了主要问题在于 没有办法爬取到 .jpg这是因为这个网站已经被加密了。 怎样判断一个网站被加密了就是 使用urllib.urlopen导出html文本和审查元素中相应字段对不上。 以后你会发现对不上是常态一般是JS加密的  可以说大一点的网站这些信息都会对不上。 那怎么解决呢 目前我只用的一种方法就是使用selenium爬取js加密的网页 需要详细讲解的可以查看python使用selenium爬取js加密的网页 所以呢我的代码就是下面这样子了 #从加密的煎蛋网的随手拍栏目下载图片 import os from selenium import webdriver import urllib.request def url_open(url): #返回普通不加密网页的源码(速度快) req urllib.request.Request(url) req.add_header(User-Agent, Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36) response urllib.request.urlopen(url) html response.read() return html def url_open_jm(url): #返回加密网页的源码(速度慢 chrome webdriver.Chrome() chrome.get(url) html chrome.page_source return html #返回的就是字符串 def get_page(url): #得到最新页面的页码数(可以使用不加密读码得到为了加快速度) html url_open(url) #然后就是查找 html 中的 current-comment-page a html.find( current-comment-page) 23 #加上 23 位偏移就刚到到页码数的第一位数字 b html.find(], a) #找到 a 位置之后的第一个方括号所在位置的索引坐标 return html[a : b] #这就是最新的页码数啦 def get_page(url): #得到最新页面的页码数 html url_open(url) html html.decode(utf-8) #因为要以字符串的形式查找所以要 decode #然后就是查找 html 中的 current-comment-page a html.find( current-comment-page) 23 #加上 23 位偏移就刚到到页码数的第一位数字 b html.find(], a) #找到 a 位置之后的第一个方括号所在位置的索引坐标 return html[a : b] #这就是最新的页码数啦 def find_imgs(url): #给一个页面的链接返回所有图片地址组成的列表 html url_open_jm(url) #这个必须使用加密打开的方式 img_addrs [] #声明一个保存图片地址的列表 #查找图片地址 #加密的网页破解后得到的图像在这里 #img srchttp://ww3.sinaimg.cn/mw600/006XNEY7gy1fy66dacugfj30qh0zkdhu.jpg #所以要先找jpg然后找img src a html.find(.jpg) while a ! -1: b html.rfind(img src, a-100, a) #在 a-100 到 a区间找 img src必须反向查找 #如果 b 找不到b 就返回 -1 if b ! -1: img_addrs.append(html[b9: a4]) a html.find(.jpg, a4) for each in img_addrs: print(each) return img_addrs def save_imgs(folder, img_addrs): for each in img_addrs: filename each.split(/)[-1] with open(filename, wb) as f: img url_open(each) f.write(img) def download_figures(folder figures, page 2): os.mkdir(folder) #创建文件夹 os.chdir(folder) url http://jandan.net/ooxx/ #随手拍栏目的链接也是最新页面的链接 page_num int(get_page(url)) #得到最新页面的页码数 for i in range(page): page_url url page- str(page_num) #comments #得到要爬取的页面的链接 print(page_url) img_addrs find_imgs(page_url) #得到页面所有图片的地址保存为列表 save_imgs(folder, img_addrs) #保存图片到本地文件夹 page_num - 1 #逐步找到前几个页面 if __name__ __main__: download_figures() 完美实现目标只不过selenium 的速度是真的慢以后如果有更好的办法会继续改进的也希望大家多多批评指导。
http://www.eeditor.cn/news/120303/

相关文章:

  • 科技类网站模板桂林手机网站建设
  • 公积金网站建设模板网站开发顶岗周记
  • ai特效字体网站桂平逗乐游戏招聘网站开发
  • 网站改版 价格跨境电商那个网站做饰品比较好
  • 扬州做网站公司WordPress文章按钮
  • 可以做兼职翻译的网站做的网站没流量吗
  • cvm服务器做网站做网站应该了解什么问题
  • 基于网站开发的app特产网站建设的目的
  • 新旧网站对比乐清新闻综合频道直播
  • 象山经济开发区建设有限公司网站游戏平台网站制作
  • 外包网温州百度网站快速优化
  • 营销型网站建设区别用dw做音乐网站
  • 河北省建设工程安全生产网站白云区建网站公司
  • 3g手机网站建设个人简历生成器
  • 可以上传软件的网站太原本地网站搭建公司
  • 如何建设物流网站网站建设 贴吧
  • 相亲网站上做it的骗术沁水网站建设
  • 深圳做网站优化的公司wordpress图片评论
  • 智能建站系统cms互联网行业裁员
  • 网站建设预招标vps建设网站别人访问不了
  • 如何做网站管理首钢建设二建设公司网站
  • 织梦怎么修改网站logo天津小程序网站开发公司
  • 官方网站焊工证查询公司注册网站需要什么资料
  • asp的公司网站丹阳翼网首页
  • 发电机出租技术支持 东莞网站建设江门专业做网站
  • 网站建设电影家政 东莞网站建设
  • 试用网站空间中国空间站名字
  • 乐清网站定制公司哪家好莱芜高端网站设计建设
  • 安阳中飞网站建设无形资产 网站开发
  • 一直在做竞价的网站是不是不需要做seo深圳高端网站设计公司