用 ScrapySharp 并行下载天涯图片

#r "HtmlAgilityPack.dll"
#r "ScrapySharp.dll"

open System
open System.Threading.Tasks
open HtmlAgilityPack
open ScrapySharp.Extensions

let url  = "http://bbs.tianya.cn/post-12-563201-1.shtml"
let web  = new ScrapySharp.Network.ScrapingBrowser()
let html = web.DownloadString(new Uri(url))

let doc = new HtmlAgilityPack.HtmlDocument()
doc.LoadHtml( html )

let urls = 
    doc.DocumentNode.CssSelect("div.bbs-content > img")
    |> Seq.map(fun i -> i.GetAttributeValue("original"))

let urls = [ "http://img3.laibafile.cn/p/m/166829011.jpg";
             "http://img3.laibafile.cn/p/m/166829027.jpg";
             "http://img3.laibafile.cn/p/m/166829000.jpg";
             "http://img3.laibafile.cn/p/m/166829039.jpg";
             "http://img3.laibafile.cn/p/m/166829034.jpg";
             "http://img3.laibafile.cn/p/m/166829030.jpg";
             "http://img3.laibafile.cn/p/m/166829016.jpg";
             "http://img3.laibafile.cn/p/m/166829024.jpg"  ]

let GetPicture (filePath: string)  (url: string) =
    let path = filePath.Substring(0, filePath.LastIndexOf("."))
    let ty = 
        let t = new Uri( url )
        match t.Authority with 
        | var when var.Contains("laibafile.cn") -> "http://bbs.tianya.cn"
        | var when var.Contains("tianya.cn")    -> "http://bbs.tianya.cn"
        | _  -> t.Scheme + "://" + t.Authority

let web = new ScrapySharp.Network.ScrapingBrowser()
    web.NavigateToPage( new Uri(ty)) |> ignore

if not( IO.Directory.Exists( path ) ) then IO.Directory.CreateDirectory( path ) |> ignore
    let file = url.Substring( url.LastIndexOf("/") )
    let pic = (web.NavigateToPage( new Uri( url ))).RawResponse.Body
    printfn "%s" url
    File.WriteAllBytes( ( path + file ), pic )

let outPic = GetPicture filePath

Parallel.ForEach(urls, outPic) |> ignore

用 ScrapySharp 并行下载天涯图片相关推荐

  1. [爬虫学习笔记]C# 使用 ScrapySharp 并行下载天涯图片

    最近因为一个作业需要完成CNKI爬虫,研究爬虫架构的时候发现了这个疑似移植于Python的著名开源爬虫框架Scrapy的ScrapySharp,然而在网上寻找之后只发现了这个F#的Demo,就使用原文 ...

  2. 用 ScrapySharp 下载天涯图片

    用 ScrapySharp 下载天涯图片 let urlToPicture (filePath: string)  (url: string) = //    let url = "http ...

  3. 网页效率之DNS查找和并行下载

    首先,一个页面所需要访问的域名数量为n,那么就需要n次DNS查找,而DNS查找通常是blocking call,就是说在得到结果之后才能继续,所以越多的DNS查找,反应速度就越慢: 雅虎的YSlow插 ...

  4. php完美实现下载远程图片保存到本地(保存微信头像)

    2019独角兽企业重金招聘Python工程师标准>>> /** * php完美实现下载远程图片保存到本地 * @param: 文件url,保存文件目录,保存文件名称,使用的下载方式 ...

  5. python软件在下载库文件_python – 并行下载多个文件的库或工具

    我正在寻找一个python库或一个命令行工具来并行下载多个文件.我目前的解决方案是顺序下载文件缓慢.我知道你可以很容易地在python中编写一个半条线程的线程解决方案,但是在使用线程时总是遇到麻烦的问 ...

  6. python下载图片-Python下载URL图片

    所谓下载URL图片就是指通过网络图片的URL去用脚本自动获取和下载图片到本地. 这里介绍两种方法,一种需要用到第三方库requests,一种直接使用Python自带的库urllib. 首先找到你要下载 ...

  7. python批量下载网页文件-Python批量下载网页图片详细教程

    目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件夹,每个文件夹包含n个链接所对应的文件夹. 步骤1:获得网页的所有链接,访问所有链接,获得链接里的图片地址. 步骤2:根据图片 ...

  8. python下载网页里面所有的图片-Python批量下载网页图片详细教程

    很多朋友在网上查找批量下载图片的方法~发觉挺凌乱的,无从下手.这里绿茶小编就来跟大家分享下使用Python批量下载图片方法. 目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件 ...

  9. aspx网页背景图片设置代码_python requests,BeautifulSoup批量下载360图片

    本代码演示通过python的requests,BeautifulSoup库批量下载360图片,并保存在本机的路径 代码如下: #BeautifulSoup库是网页爬虫解析库,主要用来对HTML源代码进 ...

最新文章

  1. 学校计算机机房好处,浅谈学校计算机机房维护
  2. sizeof 操作符详解
  3. 织梦Cms二次开发出来的模块的导出成xml问题
  4. Python whl文件制作简介
  5. 互联网人才流向说明了什么
  6. Hashmap扩容时出现循环链表(jdk1.8把头插法换成了尾插法的原因)
  7. “单口相声”回归!罗永浩要开发布会了:黑科技!不售票!
  8. 金笛邮件之邮件倒入专题
  9. Python(2.7)-元组(tuple)
  10. python用链接表实现栈_python 用链表实现栈(计算器1)
  11. 190812每日一句
  12. 【云计算学习教程】云计算虚拟化技术和容器技术详解
  13. 程序员工资真的很高么,月入几万的难道不是吹牛?
  14. Linux驱动(并发):02---编译乱序、执行乱序(屏障API(bm、rmb、wmb、__iormb、__iowmb))
  15. 数字孪生的4个最佳实践
  16. 建Kangle+EasyPanel对接SWAP IDC虚拟主机自助开通完整教程
  17. IPv6测试.测试您的手机或智能设备的IPv4和IPv6连接性.支持简易模式测试您的手机是否可以连接IPv6网络.支持详细模式测试您的手机是否可以连接IPv6网络
  18. 云原生相关介绍,25 个点很全面
  19. 分数化成有限小数的方法_怎样把分数化成小数
  20. Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe

热门文章

  1. beaglebone C语言编程,BeagleBone的GPIO控制
  2. 转-谈谈我自己(创业四个多月)
  3. 微信小程序之excel上传bug
  4. 北京租赁住房用地分布,八张大数据图表让你一目了然!
  5. 计算包含函数的算术表达式
  6. VoxEdit 主题创作大赛:将 90 年代的复古元素带入 Web3
  7. 计算机网络层协议介绍icmp/arp
  8. ArcGIS利用省市界对数据进行裁剪(栅格、矢量)
  9. vnc远程桌面精灵,细数3款vnc远程桌面精灵
  10. Match.com被逼做DownToEarth免费交友社群,社群网站也可转战男女交友!