01 爬虫入门

原生爬虫思路

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

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

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

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

程序入口

举个例子:

from urllib import request
import re

# 贵州人才信息网招聘岗位的抓取
class Spider():
    # 目标所在特征字符串,组中的内容即为目标:招聘岗位
    root_pattern = 'name="thiszw" href="[\s\S]*?" target="[\s\S]*?" title="([\s\S]*?)"'

    # 模拟网页请求返回网页数据
    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

 

 

 

posted @ 2019-11-03 18:03  Scorpicat  阅读(144)  评论(0编辑  收藏  举报