Python进阶之前端和爬虫基础

前端和爬虫基础

一、了解前端页面源代码

1、了解前端页面源代码的构成

html全称HyperText Mackeup Language,翻译为超文本标记语言,它不是一种编程语言,是一种描述性的标记语言,用于描述超文本内容的显示方式,主要由三样东西构成:

  • 标签 - 数据(content - 承载了页面的内容)
  • 层叠样式表(CSS)- 显示(display - 渲染页面)
  • JavaScript(JS) - 行为(behavior - 控制页面交互式行为)
  • 命名规范:驼峰式命名(从第二个单词开始首字母大写)

2、页面的大体结构构成

对于初学者来说,要想写一个前端的页面,最先要了解前端页面源代码的大体结构的构成,然后再往里面镶嵌自己想要增加的内容

  • 前端页面大体结构主要由 三个标签构成
  • html标签:声明部分,主要是用于告诉浏览器这个页面使用的是哪个标注
  • head标签:主要是将页面的一些额外信息告诉服务器,不会显示在页面上,但是一般会包含比较重要的元信息,一般我们要对页面中的内容进行格式渲染,就写在head标签里面
  • body标签:是页面需要实现的主要内容,我们写的代码就必须放在这个标签里面
  • 在这里插入图片描述

3、了解HTML中的相关标签

(1)文本相关
  • h1 - h6 : 标题样式,h1 (给文本增加主标题也叫一级标题的语义),以此类推
  • p : 段落标签,里面的内容被换行,并且上下的内容之间也有一行空白,P标签是块级标签,里面的内容独占一行
  • sub / sup : 下标 /上标
  • strong : 加粗
  • em : 斜体
(2)图像
  • img - 图像,src 要显示图片的路径,路径最好用绝对路径
(3)链接
  • a标签 - href属性,是指定要去哪里/name属性(锚点属性)/target属性(_self在当前页面打开新页面,)
    • 页面链接
    • 锚链接
    • 功能链接
(4)表格
  • table标签
(5)列表
  • ul - 无序列表(unordered list) - li(列表项,列表中的元素)
  • ol - 有序列表(ordered list) - li(列表项,列表中的元素)
(6)定义
  • dl(标签)
  • dt(定义的标题)
  • dd(定义的描述)
(7)音视频
  • audio(音频) - source
  • video(视频)
(8)表单
  • form —> input

二、爬虫

1、爬虫的分类

  • 通用爬虫:搜索引擎
  • 定向爬虫:只爬取自己需要的数据

2、爬虫的作用

  • 中小企业一般情况下,数据都是短板,只能靠爬虫去采集数据

  • 舆情监控

  • 竞品分析、了解行情

3、了解爬虫获取页面所需三方库 - 请求库(requests)

要想通过Python从浏览器中爬取数据,首先要在python中导入一个三方库requests,利用requests的属性来获取网页中的数据信息

(1)了解http协议
  • URI - Universal Resource Identifier - 统一资源标识符

  • URL - Universal Resource Locator - 统一资源定位符

    • 域名/IP地址 - 要连接的主机
    • 端口号 - 端口用来区分不同的服务
    • 资源路径
  • URI = URL + URN(x)

  • 协议 - HTTP / HTTPS

    • HTTP - Hyper-Text Transfer Protocol - 超文本传输协议,请求响应式协议
    • HTML - Hyper-Text Markup Language - 超文本标记语言
    • HTTPS - HTTP over SSL —> 安全的HTTP
      • 2017年1月1日苹果AppStore强制使用HTTPS
      • 微信小程序强制使用HTTPS跟后台程序通信
      • Chrome从2017年发布的版本都会对HTTP提示不安全
  • DNS - Domain Name System - 将域名解析为IP地址

  • HTTP请求

    • 请求行 - GET / HTTP/1.1
      • GET:从服务器获取资源
      • POST:向服务器提交数据
    • 请求头 - 键值对 - 告诉服务器的额外的信息
    • 空行(\r\n)
    • 消息体 - 你要发给服务器的数据
(2)发送请求
  • 首先在Python中导入三方库:import requests

  • get请求:可以请求任何网站的URL

  • r = requests.get('https://api.github.com/events')
    
  • post请求

  • r = requests.post('http://httpbin.org/post', data = {
         'key':'value'})
    
(3)检测响应状态码
  • 在向浏览器发送了请求之后我们可以检测一下响应状态码
  • r.status_code
  • 响应状态码 -------404 Not Found / 403 Forbidde
    • 2xx:成功了
    • 3xx:重定向
    • 4xx:请求有问题
    • 5xx:服务器有问题
  • 常见的响应状态码有:
    在这里插入图片描述
(4)获取响应内容
  • 文本响应内容:.text
  • 二进制响应内容:.content
  • JSON响应内容:.json
    • 服务器发给浏览器的数据
    • 如果请求的是图片,就获得图片的二进制数据
    • 如果请求的网页,就获得网页的源代码,浏览器执行代码,用户看到页面

4、爬虫时如何隐匿自己的身份

法不禁止即为许可。爬虫是一个灰色地带,总的来说是不违法的,但是我们在进行爬虫时也要注意隐匿自己的身份,爬虫协议:robots.txt

  • 在看网页源代码时,你会发现网页源代码的请求头中有一个‘User-Agent’,他能够使服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
  • 因此我们可以在发送请求时定制一个请求头
(1)如何定制请求头
  • 只需要传递一个dict给headers参数就可以了,headers参数里面是一个字典,添加’User-Agent’的键,再把网页源代码的User-Agent的值复制粘贴过来就可以了

  • import re
    import requests
    resp = requests.get(
        url='https://movie.douban.com/top250',
        headers={
         
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
        }
    )
    # 418 - I am a teapot.
    print(resp.status_code)
    print(resp.text)
    
(2)如何在网页中查看到’User-Agent’
  • 第一步:右键点击网页任何一处空白处,再点击检查
  • 第二步:点击network,再刷新页面
  • 第三步:点击第一个,就可以在Request Headers里面看到’User-Agent’
    在这里插入图片描述

5、如何解析页面?

要了解我们爬取到的是页面的全部信息,但是我们可能只是需要其中的一部分信息,其他繁杂无用的信息都不需要,因此我们要对我们爬取到的页面信息进行解析,从而获取到自己想要的那一部分

(1)正则表达式解析
  • 首先将要查找的内容转化成正则表达式:Pattern = re.compile(‘ …正则表达式…’)
  • 然后再利用re模块中的findall去查找r.text中符合Pattern格式的内容
  • results = Pattern.findall(r.text)
import re
import requests
resp = requests
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值