论坛首页 编程语言技术论坛

趣味爬虫之天气预报信息的获取

浏览 401 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2022-01-13  
最近忙着工作上的事,突然想着写个爬虫练练手,想了想,就写了一个爬虫爬取“中国天气网”与并定时发送给微信好友,让他们随时关注天气以表示我的关心呀。程序运行了几天了还算是稳定关于简单的实现过程,下面简单的为大家展示下。因为中国天气网的网页是动态生成的,所以我们不能直接爬取到数据,需要先使用webdriver打开网页并渲染完成,然后保存网页源代码,使用beautifulsoup分析数据。爬取的数据里面包括实时温度、最高温度与最低温度、污染状况、风向和湿度、紫外线状况,穿衣指南等数据。但是像这样的网站长期爬取还是会遇到反爬机制的,最容易遇到的就是对ip的限制,所以分享的示例里面主要部分就是代理的使用,对很多新手来说是值得学习的,这里主要以爬虫代理动态转发为例,示例如下: #! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://www.weather.com.cn/"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://www.weather.com.cn/"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}



    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text数据信息获取的部分就是这么简单,对爬虫感兴趣的小伙伴可以实践起来。对代理方面有需求的可以咨询这里https://www.16yun.cn​若有收获,就点个赞吧
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics