栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫 urllib -- 爬虫的相关概念介绍、urllib库的基本使用、urllib:1个类型和6个方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫 urllib -- 爬虫的相关概念介绍、urllib库的基本使用、urllib:1个类型和6个方法

1. 爬虫的相关概念介绍
1.1 什么是互联网爬虫


如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只蜘蛛,沿着蜘蛛网抓取自己想要的数据

解释1:通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息


1.2 爬虫核心

爬取网页:爬取整个网页 包含了网页中所有得内容解析数据:将网页中你得到的数据 进行解析难点:爬虫和反爬虫之间的博弈


1.3 爬虫的用途

数据分析/人工数据集社交软件冷启动舆情监控竞争对手监控


1.4 爬虫分类

通用爬虫:

聚焦爬虫:


1.5 反爬手段
1.User‐Agent:
	User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识
	别客户使用的操作系统及版 本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器
	语言、浏览器插件等。
2.代理IP:
	西次代理 
	快代理 
	什么是高匿名、匿名和透明代理?它们有什么区别? 
		1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。 
		2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。 
		3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。
3.验证码访问 
	打码平台 
		云打码平台 
		超级礪
4.动态加载网页 网站返回的是js数据 并不是网页的真实数据 
	selenium驱动真实的浏览器发送请求
5.数据加密 
	分析js代码

2. urllib库的基本使用

爬取百度源码:

# 使用urllib来获取百度首页的源码
import urllib.request


# (1)定义一个url  就是你要访问的地址
url = 'http://www.baidu.com'

# (2)模拟浏览器向服务器发送请求 response响应
response = urllib.request.urlopen(url)

# (3)获取响应中的页面的源码  content 内容的意思
# read方法  返回的是字节形式的二进制数据
# 我们要将二进制的数据转换为字符串
# 二进制--》字符串  解码  decode('编码的格式')
content = response.read().decode('utf-8')

# (4)打印数据
print(content)

运行结果:

补充说明:如果不解码会怎么样?


3. urllib:1个类型和6个方法
3.1 一个类型:HTTPResponse
import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 一个类型
# response是HTTPResponse的类型
print('response type is ', type(response))

运行结果:


3.2 六个方法

read():按照一个字节一个字节的去读

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 按照一个字节一个字节的去读
content = response.read()
print('response.read() is: ', content)

运行结果:

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 返回参数个字节
content = response.read(5)
print('response.read(5) is: ', content)

运行结果:

readline():读取一行

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 读取一行
content = response.readline()
print('response.readline() is ', content)

运行结果:

readlines():读取所有行

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 读取所有行
content = response.readlines()
print(type(content))
print(content)

运行结果:

getcode(): 返回状态码

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)


# 返回状态码  如果是200了 那么就证明我们的逻辑没有错
print(response.getcode())

运行结果:

geturl(): 返回的是url地址

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)


# 返回的是url地址
print(response.geturl())

运行结果:

获取请求头信息:

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 获取是一个状态信息
print(response.getheaders())

运行结果:



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号