zoukankan      html  css  js  c++  java
  • 【爬虫】【原创】08 使用简单正则表达式爬取下厨房(早餐,午餐,晚餐)

          目的

    1)      提取下厨房关键词为(早餐,午餐,晚餐)的菜谱

    2)      获取“菜谱链接,图片地址,菜名,材料,七天内多少人做过,作者“,存储到MONGODB

    3)      对每个菜谱进行网页截图,保存到本地

    2.      目标站点分析

    网址:

    http://www.xiachufang.com/

    输入关键词“早餐”,发现是跳转链接(暂时没想到这种怎么处理比较好,就单独拿出来处理吧)


    午餐和晚餐的网址就比较一致


    3.      爬取思路(以午餐为例)

    1)      根据午餐关键词,组合url,请求得到第一页结果

    2)      解析第一页结果,使用正则表达式获取,提取详情页信息和其他信息

    3)      根据详情页信息的url获取详情页,截图保存,文件夹使用详情页URLID_菜名

    4)      改变page参数,获取多页内容

    4.      需要处理的

    1)      早餐的url独立处理(跳转的url还没学过怎么处理)

    2)      有一些菜谱存在综合评分的数字,有些不存在,无法用正则表达式统一提取,待改进

    3)      获取的菜谱名和用户名几乎都会存在windows下文件夹不能存在的特殊字符,使用链式replace替换

    4)      page用于多线程处理

    5)      截图使用seleniumPhantomjs完成,暂时只会截取全屏,还没研究过怎么截取需要的部分

    6)      增量更新,包括数据库和网页截图的方法(做法变化或者作者更新删除等的判断),这些还没学会怎么做(虽然现在的爬虫框架比如Scrapy/Pyspider都提供了去重的功能,但是具体实现还没研究过),这是一个造轮子的过程

    5.      代码部分

    1)      解析每一页,得到“菜谱链接,图片地址,菜名,材料,七天内多少人做过,作者”


    2)      解析详情页,并截图


    3)      存到MongoDB


    4)      开启多线程


     

           以前写个爬虫要1天时间,现在好了一点,2小时能撸完一个简单的爬虫,再接再厉

     

    爬取效果:



    18页结果一共运行了5分半钟(4核处理器)

     

     

    代码地址:

    https://github.com/copywang/spiders_collection/tree/master/08_xiachufang

     

  • 相关阅读:
    windows的80端口被占用时的处理方法
    Ansible自动化运维工具安装与使用实例
    Tomcat的测试网页换成自己项目首页
    LeetCode 219. Contains Duplicate II
    LeetCode Contest 177
    LeetCode 217. Contains Duplicate
    LeetCode 216. Combination Sum III(DFS)
    LeetCode 215. Kth Largest Element in an Array(排序)
    Contest 176 LeetCode 1354. Construct Target Array With Multiple Sums(优先队列,递推)
    Contest 176
  • 原文地址:https://www.cnblogs.com/copywang/p/8017656.html
Copyright © 2011-2022 走看看