• 爬虫-怎么爬静态网站


    爬静态网站主要分为两部分:

    1. 爬静态网站的文字
    2. 爬静态网站的图片

    [TOC]

    爬文字

    思路

    1. requests模块得到网站的HTML
    2. BeautifulSoup模块得到HTML的正则文本
    3. find或者find_all函数从正则文本中得到自己想要的
    4. repalce去除不需要的字符

    源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    # 使脚本可以识别中文
    # 爬网站:http://www.hbrchina.org/

    import requests
    from bs4 import BeautifulSoup
    # 调用需要的模块
    if __name__ == '__main__':
    req = requests.get ('http://www.hbrchina.org/2019-02-18/7150.html')
    # 得到网站的HTML
    req.encoding = req.apparent_encoding
    #获取文本原来编码,使两者编码一致才能正确显示
    html = req.text
    bf = BeautifulSoup(html,'html.parser')
    # 把HTML文件转为正则文件(我的理解是文本文件)
    body = bf.body
    texts = body.find_all ('div',{'class':'article-content'})
    # 用find_all函数找到 这样的div文件,其class是article-content
    print(texts[0].text.replace('xa0'*8,'nn'))
    # 用replace函数提出所有的字符、空格等

    可以看到的结果

    爬图片

    思路

    1. 用requests模块得到网站的HTML
    2. 用BeautifulSoup得到HTML的正则文本
    3. 用find函数从正则文本中得到自己想要的,比如关键词img
    4. 利用urllib模块下载
    5. 利用for语句下载所有图片

    源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    大专栏  爬虫-怎么爬静态网站">14
    15
    16
    17
    18
    19
    20
    21


    import requests,urllib
    from bs4 import BeautifulSoup

    if __name__ == '__main__':
    rep = requests.get('https://darerd.github.io/2019/03/21/%E9%9A%8F%E6%83%B3-%E6%96%B0%E9%9B%B6%E5%94%AE%E4%BC%81%E4%B8%9A%E2%80%9C%E2%80%9C%E6%99%BA%E8%83%9C%E2%80%9D%E6%9C%AA%E6%9D%A5/')
    rep.encoding = rep.apparent_encoding
    html = rep.text
    bs = BeautifulSoup(html,'html.parser')
    img = bs.find_all('img')
    # 在bs正则文件中找到所有 带有img标签的结果
    x=1
    for i in img :
    # 利用for语句得到每一个图片的src
    imgsrc = i.get('src')
    # 从img中找到图片的下载链接,src
    urllib.request.urlretrieve(imgsrc,'./%s.jpg' %x)
    # 利用urllib模块去下载图片
    x=x+1
    print ('正在下载: %d '%x)

    爬虫时必须会用网页源代码

    以爬图片为例:

    这是我们要爬的网站:[https://darerd.github.io/2019/03/21/随想-新零售企业““智胜”未来/]

    打开网站后(我用的Chrome浏览器),键盘快捷键F12,即可打开网站的调试模式,效果如下:

    右侧就是网站的源代码,可以用来爬

    如果需要快速定位到某一部分的代码所在位置,我们可以鼠标右键,选择检查,如下图所示:

    如果我们要快速定位某图片所在的代码位置,演示如下:

    用这种方法观察每一张图片的源码:

    它们的写法都是非常类似的,如下:

    1
    <img src="http://upload.hbrchina.org/2019/0213/1550028457604.jpg" alt="1550028961(1)">

    src是图片的下载地址,alt是图片的便签,每一张图片都在img语句中

    所以我们只要得到所有的img语句,然后从img语句中得到所有的src链接,就可以下载图片了。

    每一种爬虫程序都类似,找到要爬部分的特点,然后调用相应的模块。

    对于小白,难度就在于怎么样找到要爬部分的特点


    以上

  • 相关阅读:
    SVN操作异常
    VS2010安装MVC3
    (转)游戏类型
    (转)32位汇编指令 寄存器
    (转)#pragma 用法
    (转)UI库
    (转)简单实用的网游服务器架构
    (转)一个客户端网游市场分布的数据
    (转)源于魔兽!《植物大战僵尸》成功奥秘
    (转)【分析】中国网游行业上市公司投资分析之网易
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12041548.html
Copyright © 2020-2023  润新知