【python杂记】网络爬虫-1/2 介绍

2022/2/22 1:24:18

本文主要是介绍【python杂记】网络爬虫-1/2 介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、爬虫
    • 爬虫的目标
    • 爬虫步骤
    • Robots排除协议
  • 二、函数库介绍
    • 1.requests函数库
      • 网页请求函数
      • Response对象的属性
      • 通用代码框架
    • 2. beautifulsoup4函数库
    • BeautifulSoup类
      • 解析内容
      • BeautifulSoup类的基本元素


前言

本文记录下关于python爬虫的学习过程和个人见解。


一、爬虫

爬虫程序不一定非要python写,但是用python写肯定会更容易,python对于爬虫有很多比较友好的框架,框架一般适用于大型网站的爬虫需求,普通的网站随便请求下就行了。

爬虫的目标

将我们需要的数据从网络上爬取下来以供我们使用。

爬虫步骤

网络爬虫应用一般分为两个步骤:

  1. 通过网络连接获取网络内容。可以使用函数库requests
  2. 对获取的网络内容进行处理。可以使用函数库BeautifulSoup4

Robots排除协议

Robots Exclusion Standard,网络爬虫排除标准

  • 作用:
    网站告知网络爬虫哪些页面可以抓取,哪些不行
  • 形式:
    在网站根目录下的robots.txt文件

二、函数库介绍

Python语言提供了很多便于爬虫的函数库,包括urllib、urllib2、urllib3、wget、scrapy、requests、beautifulsoup4等。这些库作用不同、使用方式不同、用户体验不同。下面将详细介绍其中最重要且最主流的两个函数库:requests和beautifulsoup4,它们都是第三方库。

1.requests函数库

requests库是一个简洁且简单的处理HTTP请求的第三方库。它的最大优点是程序编写过程更接近正常URL访问过程

主要用于通过网络连接获取网络内容。

  • 安装:pip3 install requests
  • 导入:import requests

网页请求函数

方法说明
requests.request()构造一个请求,支撑以下各个方法的基础方法
requests.get()获取网页的主要方法,对应HTTP的GET
requests.head()获取网页头信息的方法,对应HTTP的HEAD
requests.post()向网页提交POST请求的方法,对应HTTP的POST
requests.put()向网页提交PUT请求的方法,对应HTTP的PUT
requests.patch()向网页提交局部修改请求,对应HTTP的PATCH
requests.delete()向网页提交删除请求,对应HTTP的DELETE

Response对象的属性

属性说明
r.status_code请求的返回状态,200表示访问成功,其余表示失败
r.text响应内容的字符串形式,即url对应的页面内容
r.encoding从HTTP header中猜测的响应内容编码方式
r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)
r.content响应内容的二进制形式

通用代码框架

import requests

def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()  # 若状态不是200,产生 HTTPError异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常"

if __name__ == '__main__':
    url = "http://www.baidu.com"
    print(getHTMLText(url))

2. beautifulsoup4函数库

beautifulsoup4库,也称为Beautiful Soup库或bs4 库。是一个解析和处理HTML和XML 的第三方库,用于解析和处理HTML和XML。

使用requests库获取HTML页面并将其转换成字符串后,需要进一步解析HTML页面格式,提取有用信息,这需要处理HTML和XML的函数库

  • 安装:pip3 install beautifulsoup4
  • 导入:from bs4 import BeautifulSoup

BeautifulSoup类

BeautifulSoup对应一个HTML/XML文档的全部内容。

解析内容

bs4库将任何HTML输入都变成utf‐8编码,解析方法如下:
eg: soup = BeautifulSoup('<html>data</html>', 'html.parser')

解析器使用方法条件
bs4的HTML解析器BeautifulSoup(mk, ‘html.parser’)安装bs4库
lxml的HTML解析器BeautifulSoup(mk,’lxml’)pip install lxml
lxml的XML解析器BeautifulSoup(mk,’xml’)pip install lxml
html5lib的解析器BeautifulSoup(mk,’html5lib’)pip install html5lib

BeautifulSoup类的基本元素

基本元素说明
Tag标签,最基本的信息组织单元,分别用<>和</> 表明开头和结尾
Name标签的名字,<p>…</p>的名字是‘p’,格式:<tag>.name
Attributes标签的属性,字典形式组织,格式:<tag>.attr
NavigableString标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
Comment标签内字符串的注释部分,一种特殊的Comment类型

在这里插入图片描述



这篇关于【python杂记】网络爬虫-1/2 介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程