最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 一文带你读懂Python爬虫

    正文概述    2020-01-10   326

    一文带你读懂Python爬虫

    一、什么是爬虫?

    按照一定的规则编写程序,让其模拟人使用浏览器上网,自动抓取互联网中数据的过程,称之为爬虫。

    二、爬虫分类:

    通用网络爬虫:通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行整个 Web站点,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。 这类网络爬虫的爬行范围和数量大,对于爬行速度和存储空间要求较高。

    通用网络爬虫的结构大致可以分为页面爬行模块 、页面分析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。 常用的爬行策略有:深度优先策略、广度优先策略。

    聚焦网络爬虫:聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler),是指有选择性地爬取预先定义好的相关主题页面。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源 。

    增量式网络爬虫:增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。 和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。

    Deep Web 爬虫:Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。 表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。

    Deep Web 爬虫体系结构包含六个基本功能模块 (爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS 控制器)和两个爬虫内部数据结构(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源。

    相关推荐:《Python视频教程》

    三、requests模块基础使用

    requests常用方法:

    request():构造一个请求,支撑一下各种方法的基础方法

    get():获取HTML网页的主要方法,对应于HTTP的GET

    head():获取HTML网页头信息的方法,对应于HTTP的HEAD

    post():向HTML网页提交OST请求的方法,对应于HTTP的POST请求

    put():向HTML网页提交PUT请求的方法,对应于HTTP的PUT

    patch():向HTML网页提交局部修改请求,对应于HTTP的PATCH

    deleete():向HTML页面提交删除请求,对应于HTTP的DELETE

    1、爬取百度页面

    import requests
    import os
    BASE_PATH = os.path.abspath(os.path.dirname(__file__))
    BASE_PATH = os.path.join(BASE_PATH,'html')
    file_name = os.path.join(BASE_PATH,'demo.html')
    url = 'https://www.baidu.com/s?wd=python'
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.
        3729.131 Safari/537.36'
    }
    response = requests.get(url=url,headers=headers)
    response.encoding = response.apparent_encoding  
    with open(file_name,mode='w',encoding='utf-8') as f:
        f.write(response.text)

    2、获取KFC北京的位置信息

    import requests
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.
        3729.131 Safari/537.36'
    }
    for i in range(1,8):
        data = {
            "cname":"",
            "pid":"",
            "keyword": "北京",
            "pageIndex": i,
            "pageSize": '10'
        }
        response = requests.post(url,headers=headers,data=data).json()
        print(f'第{i}页')
        for j in response.get('Table1'):
            print(j['addressDetail'])

    下载网 » 一文带你读懂Python爬虫

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元