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

ps做网站素材文件打包seo自动工具

ps做网站素材文件打包,seo自动工具,用php 如何做网站,网站建设新模式介绍 由于最近在学习Ruby#xff0c;写一个爬虫锻炼一下。涉及xml解析、多线程、xpath语法等基础知识。 实现代码 使用说明 使用前请先安装如下gem gem install nokogiri http openssl# nokogiri#xff1a;一个解析xml和html的库#xff0c;支持css、xpath语法 # htt…介绍 由于最近在学习Ruby写一个爬虫锻炼一下。涉及xml解析、多线程、xpath语法等基础知识。 实现代码 使用说明 使用前请先安装如下gem gem install nokogiri http openssl# nokogiri一个解析xml和html的库支持css、xpath语法 # http一个发送http请求的库源代码 require nokogiri require openssl require time require http require thread # 由于网站涉不良内容网站已编码自行研究解码方式 BASE_URL l5VKR[9aI10.P;m*LzIh,]P170^F # AES-128-CBC解密 网站图片有加密需要解密 def aes_128_cbc_decrypt(encrypted_data, key f5d965df75336270, iv 97b60394abc2fbe1) aes OpenSSL::Cipher.new(aes-128-cbc) aes.decrypt aes.key key aes.iv iv aes.padding 0 # 禁用填充 aes.update(encrypted_data) aes.final end # 获取页面 def get_page_doc(page_url) begin # 使用HTTP.follow自动跟随重定向 resp HTTP.follow.get(page_url) # 转换为doc doc Nokogiri::HTML(resp.body.to_s) rescue Exception e puts e.message end doc end # 获取列表页面 def fetch_list_urls(doc) page_list [] urls [] infos [] # 获取页面链接地址 doc.xpath(//*[idarchive]/article/a/href).each do |link| # 添加 urls BASE_URL link end # 匹配标题及发布时间 doc.xpath(//*[classpost-card]/div[2]/div).each do |title| info {} if title.content.gsub(/\s/,)! # 获取标题 t title.xpath(h2[classpost-card-title]/text())[0].content # 获取发布时间 time_str title.xpath(div[classpost-card-info]/span[2]/content)[0].content publish_time Time.parse(time_str).strftime(%Y/%m/%d) info[title] , info[publish_time] t ,publish_time infos info else # 内容为空的都为广告 info[title], info[publish_time] , infos info end end # 转换hash对象 urls.each_with_index do |url, i| page {url url,titleinfos[i][title],publish_time infos[i][publish_time]} page_list page end # 返回page_list page_list end # 获取某一页的图片 def fetch_page(title,page_url) doc get_page_doc(page_url) # 去除特殊字符不然创建目录会失败windows环境 title title.gsub(/[“”、\-*?\|\/!\s]*/,) # filename images/#{title} filename File.join(File.dirname($0), images/#{title}) unless doc.nil? # 创建目录 Dir.mkdir(filename) unless Dir.exist?(filename) # 匹配页面中的图片 urls doc.xpath(//*[itemproparticleBody]/p/img/data-xkrkllgl) # 将url添加进队列 work_queue Queue.new urls.each { |img_url| work_queue img_url } workers (1..urls.size).map do |i| Thread.new(i) do begin while (img_url work_queue.pop(true)) begin p 下载图片#{img_url.content} # 读取图片数据设置超时时间为3s raw_data HTTP.timeout(3).get(img_url.content).body.to_s sleep 0.1 # 解密保存 raw_data aes_128_cbc_decrypt(raw_data) File.binwrite(#{filename}/image#{i}.jpg, raw_data) rescue Exception e p e.message next end end rescue ThreadError end end end workers.map(:join) end end def start_crawl page_index 1 loop do begin url #{BASE_URL}category/wpcz/#{page_index}/ # 今日吃瓜页面 p 正在抓取#{page_index}页地址#{url} doc get_page_doc(url) fetch_list_urls(doc).each do |page| fetch_page(page[title],page[url]) end # 匹配下一页按钮 next_page_xpath //*[classpage-navigator]/ol/li[classbtn btn-primary next]/a/text() # 退出抓取的条件 break if doc.xpath(next_page_xpath)[0].content ! 下一页 # 抓取下一页 page_index 1 sleep 0.1 rescue Exception e p e.message page_index 1 next end endend # 执行抓取方法 if __FILE__$0 start_crawl end本文由【产品经理不是经理】gzh 同步发布欢迎关注
http://www.hkea.cn/news/14340483/

相关文章:

  • 有了网站源码可以做网站吗项目营销推广方案
  • php响应式网站开发百度云铁道部建设管理司网站
  • 南京建设项目环评公示期网站深圳外文网站制作
  • 其它类型的定制营销型网站泰安网络平台
  • 微网站上的一键导航怎么做株洲网红
  • 前段 网站建设实例好看的响应式网站
  • 绍兴做网站建设企业域名免费申请
  • 乌鲁瓦提建设管理局网站怎么做县城分类信息网站
  • 建网站简易软件网站开发的分工和流程
  • python做网站毕业设计沧州黄骅市贴吧
  • 网站的留言怎么做亚马逊网站托管怎么做
  • 婚纱摄影网站设计理念怎么申请自己的网站
  • 中国建设银行手机版网站首页wordpress 后台菜单修改
  • 搭建网站干什么网站备案主体 被拉黑
  • 问答类网站怎么做啊电商平台哪个好做
  • 做照片的网站有哪些一个学校怎么制作网站
  • 如何做好网站建设的关键重点免费网站备案
  • 网站正在建设中空白模板wordpress邮件设置方法
  • 湛江网站制作企业沃航科技网站开发
  • 接做网站简介昆山做网站的
  • 济宁网站运营电商设计要学多久
  • 网站域名怎么写宁波企业网站排名方法
  • 做网站贵东莞精准网络营销推广
  • seo网站案例网页设计模板html代码登录代码
  • 德兴网站建设公司wordpress团购模板
  • 金华网站建设价格wordpress电影分享
  • 新加坡网站开发公司开发网站公司地址
  • 珠宝网站制作云开发数据库
  • 重庆品牌网站建设公司网站上漂亮的甘特图是怎么做的
  • 做软件赚钱的网站有哪些百度有免费推广广告