思路——根据网站链接爬取整个图片网站

2018-09-05 07:57:24来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

    八月入职新公司,发现公司的爬虫系统主要用Java实现的偶尔用一些python,为此又看了下Java爬虫,顺便用之前同事推荐我的美女图片网站练手(之前推荐时候python爬虫勉强算经验丰富,感觉难度太低没去爬,这次刚好拿来练手),附上网址http://www.mm131.com/,(对了,这个网站爬取要注意在请求头中加上refer的参数,不然你会发现爬到的是百度和腾讯的图标),在踩了几个Java的坑后完成了页面的爬取,但感觉接下来都是老套路,无非是按网站几大分类循环爬取进行页面网址拼接之类的,就想省事减少页面分析工作,想了下可行度极高,因为网站的分类和图片链接的域名都是一样的,可以以此为过滤条件。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------思路如下:

         根据该网站相关链接爬取整个图片网站可行,主要有两点要注意:

          (1)url链接的存储和消重; 

解决方法:用布隆过滤器或直接用列表(List)进行存储和去重,每次将爬取完毕的url存储到列表(或布隆过滤器),并写入到文件中进行记录,在停止后重新爬取时直接将文件内的链接读取到列表(或布隆过滤器)中即可,为了减小内存消耗,就不记录图片的链接,图片链接可根据我们设定的图片命名方式直接利用os模块的os.path.isfile(filepath)或os.path.exisits(filepath)检查该图片链接是否在对应路径已存在该名称的图片。

          (2)图片的分类和存储

解决方法:直接根据图片和人物分级创建文件夹存储图片,如mingxing(明星),chemo(车模),qipao(旗袍)。。

链接示例:

http://www.mm131.com/mingxing/2016.html

http://img1.mm131.me/pic/2016/1.jpg

 

爬取:1. 直接利用python的Scrapy框架进行分布式爬取;

           2. (推荐推荐)自己写个,用python的urllib或requests(推荐)模块,再用上yield(生成器),简单实现分布式盘爬取,效率更高;

           3. 用Java的HttpClient(功能强,更广泛)或Jsoup(使用简单)。

 

ps:今天大致就这样了,今天浪的太厉害,没啥时间写代码了(懒),,,浪荡的周日啊。。。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python:游戏:测试打字速度

下一篇:python开发多用户在线FTP