首页 > 其他分享 >基于逻辑回归天气预报之爬虫1

基于逻辑回归天气预报之爬虫1

时间:2023-07-03 19:12:51浏览次数:60  
标签:逻辑 请求 url request 爬虫 print 天气预报 response

项目:基于逻辑回归天气预报

项目简单介绍

数据来源:ETL(sqoop,Flume,datax,Cannal,Finkx),python爬虫(发送请求->响应请求->(HTML)->解析数据(Xpath,正则,bs4)-> 保存数据(文本文件,数据库)
数据分析:Spark做数据清洗(数据仓库,数据中台,数据湖)
数据可视化(BI):帆软(FineBl,FineReport,quickBl,DataV)
数据预测:基于现有天气得到天气质量模型,最后预测未来15天天气状况

1.Python爬虫

  • 对网页分类:静态网页,动态网页
    静态网页:网页内容一次性加载出来
    动态网页:局部加载
  • 分析url
    url是变化的:翻页怎么办:找到url变化规律
    url是不变的:翻页怎么办(selenium:自动化)
  • 解析请求
    xpath
    bs4
    正则
    *数据存储
    数据库

1.1.网络爬虫基础知识

  • 作用

    提取有价值的信息

    商业用途

    数据分析

  • 分类

    通用(robots 协议,君子协议),聚焦(大部分使用),增量式(增量式更新)网络爬虫

  • 爬虫速度慢解决

    多线程

  • 流程

    发送请求(re.get/post),响应请求,得到HTML,使用浏览器分析结构,使用正则,Beautifl Soup等提取数据,存储

  • 网页结构

    HTML

    CSS

    JavaScript

1.2静态,动态页面获取

  • 静态:可以直接通过get()获取,响应速度快,页面更新麻烦
  • 动态:不是一次性将所有页面内容加载出来,

1.3第一个爬虫程序

  • 要求:爬取百度页面信息

  • 获取html网页信息

#  1.导包
import urllib.request
# from urllib import request
#  2.发送请求
response = urllib.request.urlopen("http://www.baidu.com/")
# response = request.urlopen("http://www.baidu.com/")
#返回的是一个响应对象
print(response)
#结果:<http.client.HTTPResponse object at 0x0000020C1919B490>

#  3.获取百度首页html
# print(type(response.read()))
print(response.read().decode("utf-8"))
#返回状态码:200成功,404失败
print(response.getcode())
#返回请求的url
print(response.geturl())
  • 常用函数

urlopen(url,timeout):

​ 向网页发起请求,获得响应对象

​ url:网址,timeout:超时时间

Request (url,headers)

​ url:网址

​ headers:模仿浏览的,构建请求头包括(Agent(k,v),cookie)

read:html响应对象,返回byte类型

read().decode("utf-8"):html响应对象,返回Sting类型

getcode:返回状态码:200成功,404失败

geturl:返回请求的url

decode("utf-8"): 解码

encode("utf-8"): 编码

user-Agent:用户代理

image.png

  • 请求头不构建之前

    #  1.导包
    import urllib.request
    #  2.发送请求
    response = urllib.request.urlopen("http://httpbin.org/get")
    #返回的是一个响应对象
    print(response.read().decode("utf-8"))
    # "User-Agent": "Python-urllib/3.10"是个python爬虫解析器
    

    结果

    {
      "args": {}, 
      "headers": {
        "Accept-Encoding": "identity", 
        "Host": "httpbin.org", 
        "User-Agent": "Python-urllib/3.10", 
        "X-Amzn-Trace-Id": "Root=1-64a28b1a-423c0d5306da640e75219dc9"
      }, 
      "origin": "223.215.252.106", 
      "url": "http://httpbin.org/get"
    }
    
    
    Process finished with exit code 0
    
    
  • 请求头构建之后

    from urllib import request
    #定义请求头
    headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67"}
    #定义url
    url="http://httpbin.org/get"
    
    req=request.Request(url=url,headers=headers)
    response = request.urlopen(req)
    print(response.read().decode("utf-8"))
    

    结果

    {
      "args": {}, 
      "headers": {
        "Accept-Encoding": "identity", 
        "Host": "httpbin.org", 
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67", 
        "X-Amzn-Trace-Id": "Root=1-64a2a5ec-5ac07de149468b8a326325e7"
      }, 
      "origin": "223.215.252.106", 
      "url": "http://httpbin.org/get"
    }
    
    
    Process finished with exit code 0
    
    
  • 构建请求池

    from fake_useragent import UserAgent
    #实例化一个对象
    ua=UserAgent() #随机获取一个ie浏览器ua
    print(ua.ie)
    print(ua.ie)
    #随机获取一个火狐浏览器ua
    print(ua.firefox)
    print(ua.firefox)
    

标签:逻辑,请求,url,request,爬虫,print,天气预报,response
From: https://www.cnblogs.com/wjc1234/p/17523715.html

相关文章

  • 微信公众号_爬虫_fiddler_抓包_python
    wechat_python/run.pyfromsqlalchemyimportColumn,Integer,String,create_enginefromsqlalchemy.ormimportsessionmakerfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base()classArticleInfo(Base):__tablename__=�......
  • 异步爬虫之线程池案例应用
    1.爬取梨视频缓存本地视频_1: 2.爬取梨视频缓存本地视频_2: 3.下载至本地视频:  ......
  • 异步爬虫之线程池的基本使用
    1.串行方式执行程序记录: 2.串行使用8秒,使用线程池用了2秒: ......
  • JavaScript逻辑运算符AND和OR之间的区别
    AND&&和OR||是JavaScript中的逻辑运算符,可用于执行不同的逻辑表达式。在这篇文章中,我将解释它们之间的区别。本文的目标是让您了解这些运算符的工作原理以及它们的不同之处。要理解这些运算符,了解JavaScript中真值和假值的概念非常重要。(更|多优质内|容:java567点c0m) ......
  • Python 逻辑表达式的妙用
    今天偶然看到有这样一段代码,感到很惊讶:super().__init__(package_nameor(robot_name+"_moveit_config"))语义非常明确且简洁,但是逻辑表达式可以这样用吗?我搜索了一下,原来or和and表达式的返回值并不一定是bool值。>>>1and22>>>1and00>>>0and10>>>No......
  • 爬虫-Scrapy框架安装使用2
    Scrapy框架其他方法功能集合笔记使用LinkExtractor提取链接使用Selectorimportscrapyfrombs4importBeautifulSoupclassBookSpider(scrapy.Spider):name="book"allowed_domains=["books.toscrape.com"]start_urls=["http://books.t......
  • 双写一致性之定时更新、异步发送短信、异步秒杀逻辑前后端、课程页页面前端、课程相关
    目录一、双写一致性之定时更新任务逻辑二、异步发送短信视图函数任务三、异步秒杀逻辑前后端1.1前端Sckill.vue视图类路由任务四、课程相关表分析先创建一个course.app表数据迁移表六、课程表数据录入七、课程主页接口一、双写一致性之定时更新任务逻辑@app.taskdefupdate......
  • 一文拆解“复杂软件”的无代码配置逻辑
    最近教研组的小伙伴们收到了一些用户在试用smardaten过程中的困惑。为了解答大家的疑问,今天特别邀请了教研组的美女小姐姐,以一个比较简单易理解的场景“疫情填报”,来拆解一下smardaten如何支撑应用的搭建逻辑,以及smardaten作为企业级无代码与轻量级无代码的配置逻辑差异。课程视频......
  • 爬虫为什么要用HTTP代理?
    爬虫为什么会使用到HTTP代理这个问题,我们得先讲讲,什么情况下我们会使用爬虫?众所周知,爬虫在许多领域都有广泛的应用:1.我们日常生活中接触最多的,百度、360、Google搜索等等此类的搜索引擎就是利用爬虫程序来实现的,比如Googlebot是目前最为知名和广泛使用的爬虫之一、百度的爬虫程序B......
  • Java 网络爬虫,就是这么的简单
    是Java网络爬虫系列文章的第一篇,如果你还不知道Java网络爬虫系列文章,请参看学Java网络爬虫,需要哪些基础知识。第一篇是关于Java网络爬虫入门内容,在该篇中我们以采集虎扑列表新闻的新闻标题和详情页为例,需要提取的内容如下图所示: 我们需要提取图中圈出来的文字及其对......