笔记 day 010

“大数据时代” 数据获取的方式

  • 企业生产的用户数据:大型互联网公司有海量用户

  • 互联网数据指数
    百度指数:http://index.baidu.com/
    阿里指数:http://index.1688.com/
    腾讯指数:http://tbi.tencent.com/
    微博指数:http://data.weibo.com/index

  • 数据管理咨询公司

  • 艾瑞咨询:http://www.mckinsey.com.cn/

  • 麦肯锡咨询: http://www.mckinsey.com.cn/

  • 埃森哲咨询:https://www.accenture.com/cn-zh/

  • 政府/机构提供的公开数据:政府通过各地政府统计上报的数据进行合并;机构都是权威的第三方网站。
    中华人民共和国国家统计局数据:http://data.stats.gov.cn/
    世界银行公开数据: https://data.worldbank.org.cn/
    纳斯达克股票市场: http://www.nasdaq.com/zh
    联合国数据: http://data.un.org/

  • 第三方数据平台购买数据
    数据堂:http://www.datatang.com/
    贵阳大数据交易所:http://www.gbdex.com/website/
    iData:http://www.idataapi.cn/
    数据智汇:http://www.shujuzhihui.cn/apis

  • 爬虫爬取数据: 从互联网上定向采集数据。

爬虫

  • 爬虫:就是抓取网页数据的程序。
  • 搜索引擎: 百度,谷歌
  • 反爬虫和反反爬虫。
  • 只要人能看到的,爬虫都可以获取, 反爬虫一定是爬虫胜利。

网络请求与响应

  • 网络协议
  • HTTP : 超文本标记语言
  • HTTP协议(Protocol) 是一种发布和接收 HTML页面的方法。
  • HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。
  • SSL 安全套接(Socket)层
  • HTTP 端口号: 80
  • HTTPS 端口号: 443
  • FTP SFTP : 21 22
  • Mysql 3306
  • Fiddler 8888

HTTP通信

  • 网址(域名) -》 DNS服务器 (网址与IP地址的映射)-》 IPv4地址 (283.22.11.33)。
  • 由两部分组成: 客户端请求消息 与 服务器响应消息
  • URL : 统一资源定位符
  • 本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]
    scheme:协议(例如:http, https, ftp)
    host:主机名, 服务器的IP地址或者域名
    port#:服务器的端口(如果是走协议默认端口,缺省端口80)
    path:访问资源的路径
    query-string:参数,发送给http服务器的数据
    anchor:锚点(跳转到网页的指定锚点位置)

https://kuaibao.jd.com/article?id=223862561

http://api.vcaomao.com/#indexW

扫描二维码关注公众号,回复: 8597011 查看本文章

https://capital.iresearch.com.cn/index.html

HTTP请求报文

  • http 报文结构

    • 请求方法:
      • GET方法
      • POST方法
  • Connection:表示客户端与服务连接类型 keep-alive在很多情况下能够重用连接,减少资源消耗,缩短响应时间,比如当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都去请求建立连接。

  • Upgrade-Insecure-Requests: 升级为HTTPS请求
    Upgrade-Insecure-Requests:升级不安全的请求,意思是会在加载 http 资源时自动替换成 https 请求,让浏览器不再显示https页面中的http请求警报。

  • 用户代理(客户端浏览器的名称): ******

    • User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
  • Accept : 传输文件类型

  • Referer : 页面跳转处 表明产生请求的网页来自于哪个URL,用户是从该 Referer页面访问到当前请求的页面。这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

  • Accept-Encoding(文件编解码格式)

  • Accept-Language(语言种类)

  • Accept-Charset(字符编码)

  • Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,

  • Content-Type : POST请求里用来表示的内容类型。

HTTP 响应报文

  • 响应状态码
    响应状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
    常见状态码:
    100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
    200~299:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)。
    300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。
    400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。
    500~599:服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况)。

  • Cache-Control / Pragma : 服务端希不希望客户端缓存资源,在下次请求资源时,必须要从新请求服务器,不能从缓存副本中获取资源。

  • Connection:keep-alive
    这个字段作为回应客户端的Connection

  • Content-Encoding : 编解码格式

  • Content-Type : 接受的文件类型

  • Date : 服务端发送资源时的服务器时间

  • Expires : 过期时间 客户端在这个时间前,可以直接访问缓存副本

  • Server : 服务器的版本

  • Transfer-Encoding : 是否分块发送

  • Vary

urllib 库 原生库

  • 网络请求库 requests
  • get方法
    • url 网址
    • 请求头内容 headers {User-Agent必须加}
    • verify = False 忽略SSL安全认证
      response = requests.get(url,headers = headers, verify = False)
      print(response.content.decode(“utf8”))
    • 返回响应对象
    • response.url
    • response.text
    • response.encoding
  • with 语句:
    • with open() as f:
      • 语句

练习

  • 获取百度首页源代码,并写入到一个html文件中。
  • 获取任意关键词的百度搜索页,任意起始页和结束页。 存入到html文件中
  • 获取任意关键词的百度贴吧页,任意起始页和结束页, 存入到html文件中。
发布了70 篇原创文章 · 获赞 14 · 访问量 2647

猜你喜欢

转载自blog.csdn.net/Captain_DUDU/article/details/102903791