亲宝软件园·资讯

展开

通过python获取甲流分布数据

小白学大数据 人气:0

近期,多地学校出现因甲流导致的班级停课,儿科甲流患者就诊量呈数倍增长。此轮甲流为何如此严重?感染甲流之后会出现哪些症状

经过专家的介绍甲流之所以这么严重有这些原因导致的。一、疫情完全放开后很多孩子不戴口罩了,预防流感的作用会下降。二是“免疫债”的偿还,免疫债又称免疫差距。指实施NPIs (戴口罩、保持手卫生、保持社交距离等)后人群病原体免疫刺激缺乏,易感人群增加导致群体免疫水平较疫情前下降。孩子免疫系统的发育是要有适当的病原来进行刺激的,疫情期间一直戴口罩,局部的呼吸道的免疫力是降低的,摘下口罩后会比原来更容易感染呼吸道疾病。
伴随着甲流病人数猛增,群众对于这一病症重视度也在增加,不仅有关甲流的搜索指数在增加,并且因为甲流的爆发重现了抢药高潮。
疫情期间的时候分享了如何利用python爬虫疫情数据的博客,今天我们同样的操作来获取下现在甲流感染的数据
爬取思路从以下几个方面进行分析,数据来源于:https://www.baidu.com/
1、分析网页的网络数据,取得请求头,并用python的requests包进行解析和读取。
2、分析解析出的包,进行提取和操作
3、将数据提出并存到数据库
涉及到的知识点:python的爬取,目标网站的反爬
思路差不多就是这些,因为有反爬,所以在爬取过程中错了反爬措施,基本的就是解决方案就是User-Agent 用户代理的添加和代理的使用,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。
User-Agent最好使用真实库,代理最好也是高效的,Referer的来源可以伪装成百度搜索来的。

Mozilla/4.0 (compatible; MSIE 4.0; Windows Me; Trident/4.0; SV1; .NET CLR 1.0.3705; .NET CLR 3.0.04320; msn OptimizedIE8;ZHCN)
Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 5.1; Trident/4.0; Maxthon; .NET CLR 3.0.04320; msn OptimizedIE8;ZHCN)
Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; PPC; 240x320) Opera 8.65 [zh-cn]
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QIHU 360EE) ; InfoPath.2; .NET CLR 2.0.50727)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/2; .NET CLR 2.0.50727; SE 2.x)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; 360SE)
需要其他版本的UA库,可以找亿牛云。
爬虫如何添加UA:
        class ProxyMiddleware(object):                
            def process_request(self, request, spider):
                # 代理服务器(产品官网 www.16yun.cn)
                proxyHost = "t.16yun.cn"
                proxyPort = "31111"
                # 代理验证信息
                proxyUser = "username"
                proxyPass = "password"
                request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort)
                # 添加验证头
                encoded_user_pass = base64ify(proxyUser + ":" + proxyPass)
                request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass                    
                # 设置IP切换头(根据需求)
                tunnel = random.randint(1,10000)
                request.headers['Proxy-Tunnel'] = str(tunnel)
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1276.73 Safari/537.36', 'Referer':'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=nike'}
response = requests.get(url=url, headers=headers)

cookie的获取

import requests    
class Crawler():
    def getCookie(self):
        response = requests.get(self.url)
        cookie_value = ''
        for key,value in response.cookies.items():  
            cookie_value += key + '=' + value + ';'  
        self.headers['Cookie'] = cookie_value

加载全部内容

相关教程
猜你喜欢
用户评论