zoukankan      html  css  js  c++  java
  • 01 爬虫入门

    原生爬虫思路

    模拟浏览器请求网页数据(获取html)

    提取数据(从html中提取数据)

    精炼数据(规范格式,如除空格)

    业务实现(对精炼后的数据作需要的处理,如排序)

    程序入口

    举个例子:

    from urllib import request
    import re
    
    # 贵州人才信息网招聘岗位的抓取
    class Spider():
        # 目标所在特征字符串,组中的内容即为目标:招聘岗位
        root_pattern = 'name="thiszw" href="[sS]*?" target="[sS]*?" title="([sS]*?)"'
    
        # 模拟网页请求返回网页数据
        url = "http://www.gzrc.com.cn/SearchResult.php"
        def __fetch_content(self):
            headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
            page1 = request.Request(Spider.url, headers=headers)
            htmls = request.urlopen(Spider.url).read()
            htmls = str(htmls, encoding="GBK")
            return htmls
    
        # 数据提取
        def __analyse(self, page):
            job_name = re.findall(Spider.root_pattern, page)
            return job_name
    
        # 业务处理
        def __show(self,job_list):
            for rank in range(0,len(job_list)):
                print('no.'+str(rank+1)+' : '+job_list[rank])
    
        def go(self):
            page = self.__fetch_content()
            result = self.__analyse(page)
            self.__show(result)
    
    if __name__ == '__main__':
    
        spider = Spider()
        spider.go()
    

      

    爬虫库(写大型爬虫如分布式、多线程)

    Beautiful soup

    scrap

  • 相关阅读:
    scheme资料
    lisp 资料
    linux input 文章
    qt 键盘驱动分析
    表达式模板 (C++学习)
    qt 键盘插件(mine)
    qt 私有实现导致plugin 加载 提示 undefined symbol
    Visual C++ 8.0对象布局的奥秘:虚函数、多继承、虚拟继承
    linux内核input子系统解析
    qt 键盘 插件
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/11788298.html
Copyright © 2011-2022 走看看