python自学 (七)第七章 网络爬虫开发

为了能在开学后更好地融入实验室,本人计划用一个月的时间进行python3语言入门,该系列笔记适合已经有一门编程语言基础的朋友参考使用,欢迎同道者前来交流~

使用教材:
1.《python从入门到精通》清华大学出版社;(自带教学视频【二维码形式】)
2.《机器学习》周志华(西瓜书) 清华大学出版社;
3.《python机器学习手册》 [美]Xhris Albon;
4. BiliBili 《和美女老师一起学python》视频。

………………………………

Python 网络爬虫技术

网络爬虫,即可以按照指定规则自动浏览或抓取网页中的信息。

(一)网络爬虫的分类

1.网络爬虫的基本原理:

  1. 获取初试URL;
  2. 爬取页面时获得新的URL
  3. 抽取新的URL放入URL队列中;
  4. 读取新的URL进行网页下载;
  5. 如果满足停止条件,停止;如果不满足,返回步骤二。

2.网络爬虫分类

在这里插入图片描述………………………………

(二)网络爬虫常用技术

在python中实现HTTP网络请求的三种常见方式: urllib urllib3 requests

1.urllib 模块

这是一个自带模块,提供了一个 urlopen() 方法,通过该方法指定URL发送网络请求来获取数据。

urlib的子模块为:

模块名称 描述
urllib.request 该模块定义了打开URL(主要是HTTP)的方法和类,如身份验证、重定向、cookie等
urllib.error 该模块中主要包含异常类,基本的异常类是URLError
urllib.parse 该模块定义的功能分为两大类:URL解析和URL引用
urllib.robotparser 该模块用于解析robots.txt文件

通过urllib.request模块实现发送请求并读取网页内容的简单示例如下:
【通过get请求获得百度的网页内容】

import urllib.request  #导入模块

#打开指定需要爬取的网页
response = urllib.request.urlopen('http://www.baidu.com')
html = response.read()   #读取网页代码
print(html)              #打印读取内容

运行结果:
(双击黄框框会展开网页内容)
在这里插入图片描述

通过post请求实现获取网页信息的内容:

import urllib.request  #导入模块
import urllib.parse

#将数据使用urlenconde编码处理后,再使用encoding设置为utf-8编码
data = bytes(urllib.parse.urlencode({
    
    'word':'hello'}),encoding = 'utf-8')

#打开指定需要爬取的网页
reponse = urllib.request.urlopen('http://httpbin.org/post',data = data)
html = reponse.read()   #读取网页内容
print(html)       #打印读取内容

运行结果:
在这里插入图片描述

2.urllib3 模块

在使用urllib3之前需要先通过 pip install urllib3 命令 在cmd中 对该模块进行安装。

pip install urllib3

通过urlib3模块实现发送网络请求的示例代码如下:

import urllib3

http = urllib3.PoolManger()
response = http.request('GET','https://www.baidu.com')
print(response.data)

3.requests 模块

request是第三方模块,在使用之前应该先在 cmd 中使用 pip 命令安装它。

pip install requests

使用GET请求,打印多种信息的示例代码如下所示:

import requests   #导入模块

response = requests.get('http://www.baidu.com')
print(response.status_code)    #打印状态码
print(response.url)    #打印请求URL
print(response.headers)  #打印头部信息
print(response.cookies)  #打印cookie信息
print(response.text)  #以文本形式打印网页源码
print(response.content)  #以字节流形式打印网页源码

运行结果展示:
在这里插入图片描述
………………………………

(三)HTML 解析之 BeautifulSoup

BeautifulSoup是一个用于从HTML和XML文件中提取数据的Python库

BeautifulSoup提供一些简单的函数用来处理导航、搜索、修改分析数等功能。

BeautifulSoup具有非常强大的查找功能,可以很好地节省时间。

1.安装BeautifulSoup

在cmd中输入命令: pip install beautifulSoup 4

2.创建BeautifulSoup对象

soup = BeautifulSoup(html_doc, features = ''lxml'')
print(soup)  

【此处有一个实战项目待补充】

猜你喜欢

转载自blog.csdn.net/Cambridge26/article/details/107402212