1. 类的知识回顾
2. fake_useragent库的作用
3. fake_useragent库的安装
4. fake_useragent的常用方法
5. fake_useragent.UserAgent-生获取随机的User-Agent字符串
6. UserAgent类的其他方法
7. 代码实操
定义类。
class 类名:
创建对象:使用类名创建一个对象,也称为实例化对象。
对象 = 类名( )
调用方法:通过实例对象调用类中的方法,实现具体的功能。
对象.方法名( )
【基本框架】
class 类名:
属性1 = 初始值1
属性2 = 初始值2
def 方法1(self, 参数1, 参数2, ...):
def 方法2(self, 参数1, 参数2, ...):
对象 = 类名( )
对象.方法1()
【代码示例】
# 类名为Person
class Person:
# 属性为name和age
def __init__(self, name, age):
self.name = name
self.age = age
# 方法为say_hello
def say_hello(self):
print("Hello, my name is", self.name)
# 实例化类创建对象
person1 = Person("Tom", 20)
# 调用对象的方法
person1.say_hello()
【终端输出】
Hello, my name is Tom
【代码解析】
def __init__(self, name, age):
self.name = name
self.age = age
__init__
是Python类的构造函数,用于初始化对象的属性。
当创建一个类的实例时,__init__
方法会自动调用,可以在该方法中定义实例的属性和方法。
这里它有两个参数:name和age。
在对象被创建时,这些参数将被传递给构造函数,并将它们分别赋值给对象的属性self.name和self.age。
这样,每个对象都将有自己的name和age属性,可以在类的其他方法中使用。
def say_hello(self):
print("Hello, my name is", self.name)
这是一个自定义方法,方法名为say_hello,它有一个参数self。
self代表当前对象,即调用该方法的对象。
self.name表示当前对象的名字属性。
该方法的功能是打印出一条问候语,包括对象的名字。
# 实例化类创建对象
person1 = Person("Tom", 20)
【实例化类创建对象语法】
对象 = 类名( )
这是一个Python类的实例化操作,创建了一个名为"Tom",年龄为20的Person对象。
在实例化类创建对象时,需要传递两个参数name和age,这样才能初始化对象的属性。
# 调用对象的方法
person1.say_hello()
在调用对象的方法时,不需要传递任何参数,因为方法中已经可以访问对象的属性。
例如,person1.say_hello()中的self指的就是person1对象本身,可以通过self.name访问对象的name属性。
【温馨提示】
类名通常采用驼峰命名法,属性和方法的命名采用下划线命名法。
【驼峰命名法】
驼峰命名法(Camel Case)是一种命名规范,用于将多个单词组合成一个单词,以便于阅读和理解。
其中每个单词的首字母都大写,其余的字母小写。
驼峰命名法名称来源于它的形状,类似于驼峰的背部。
【举例说明】
今天我们要学一个库,库名为fake_useragent。
fake_useragent库中有一个重要的类UserAgent可以随机生成一个User-Agent字符串。
UserAgent是类名。
user[ˈjuːzə]:用户。
agent[ˈeɪdʒənt]:代理人。
UserAgent就是由user和agent构成。
这两个单词合并在一起作为类名时,他们都首字母U和A需要大写,因此有UserAgent类。
这就是驼峰命名法。
fake[feɪk]:伪造的。
fake_useragent 库是一个用于生成随机的 User-Agent 的 Python 库。
它可以帮助开发者在爬取网页时伪装成不同的浏览器,从而避免被网站识别为爬虫并被封禁。
该模块提供了多种生成 User-Agent 的方式,包括随机选择常见浏览器、随机生成浏览器版本号、随机选择操作系统等。
使用 fake_useragent 模块可以提高爬虫的稳定性和安全性。
【总结】
fake_useragent是一个Python库,用于生成随机的User-Agent头部信息,以模拟不同的浏览器和操作系统。
它可以用于爬虫、自动化测试、反爬虫等场景。
fake_useragent是一个第三方库,使用前需要安装。
【安装命令】
pip install fake_useragent
【带镜像源的安装命令】
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ fake_useragent
第三方库安装可参考下面的链接:
【常用方法】
# 导入fake_useragent库中的UserAgent类
from fake_useragent import UserAgent
# 实例化UserAgent类创建了一个UserAgent对象
# 实例化对象语法:对象 = 类名( )
ua = UserAgent()
# 输出ua,可以看到ua是一个UserAgent对象
print(ua)
# 调用ua的random方法,获取随机的User-Agent头部信息
# 调用方法语法:对象.方法名( )
print(ua.random)
【终端输出】
<fake_useragent.fake.FakeUserAgent object at 0x000001A0DD73AEB0>
Mozilla/5.0 (X11; U; Linux i686; rv:1.8.0.1) Gecko/20060124 Firefox/1.5.0.1
【返回值】
终端输出一个随机的User-Agent字符串。
每次点击运行,得到的结果都不一样。
【代码解析】
from fake_useragent import UserAgent
导入fake_useragent库中的UserAgent类。
ua = UserAgent()
实例化对象语法:对象 = 类名( )
实例化UserAgent类创建了一个UserAgent对象。
u = UserAgent对象
print(ua.random)
调用方法语法:对象.方法名( )
通过调用UserAgent对象的方法来获取不同的User-Agent头部信息.
ua.random:获取随机的User-Agent头部信息。
【总结】
上面的代码在每次运行时,User-Agent头部信息都会随机生成,可以模拟不同的浏览器和操作系统,增加爬虫的隐蔽性。
# 导入fake_useragent库中的UserAgent类
from fake_useragent import UserAgent
# 实例化UserAgent类创建了一个UserAgent对象
ua = UserAgent()
# 调用ua的任意方法
# 调用方法语法:对象.方法名( )
chrome_ua = ua.chrome
firefox_ua = ua.firefox
safari_ua = ua.safari
ie_ua = ua.ie
random_ua = ua.random
print("Chrome浏览器的User-Agent:", chrome_ua)
print("Firefox浏览器的User-Agent:", firefox_ua)
print("Safari浏览器的User-Agent:", safari_ua)
print("ie浏览器的User-Agent:", ie_ua)
print("随机生成一个User-Agent:", random_ua)
【终端输出】
Chrome浏览器的User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1
Firefox浏览器的User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB5 (.NET CLR 3.5.30729)
Safari浏览器的User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
ie浏览器的User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0)
随机生成一个User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10
【第2个Firefox浏览器的User-Agent解析】
在爬虫程序的请求中使用fake_useragent随机生成一个User-Agent。
【代码示例】
# 导入requests库
import requests
# 从fake_useragent库导入UserAgen类
from fake_useragent import UserAgent
url = 'http://www.baidu.com'
# 实例化UserAgent类创建了一个UserAgent对象
# 实例化对象语法:对象 = 类名( )
ua = UserAgent()
# headers变量名,数据类型为字典
# 字典的键为User-Agent
# 字母的名为ua.random
# ua是上面生成的一个UserAgent对象
# random是UserAgent类的一个方法,作用是随机生成一个User-Agent
headers = {'User-Agent': ua.random}
# response变量名,这里是一个响应对象,
# response包含服务器返回的状态码、响应头和响应体等信息。
# requests库名
# get是requests库的一个方法,作用是向网页发送请求
# url采纳表示要请求的网址
# headers传递的是请求头信息
response = requests.get(url=url, headers=headers)
print(type(response))
print(response)
【终端输出】
<class 'requests.models.Response'>
<Response [200]>
【查看Response对象的7个属性】
# 导入requests库
import requests
# 从fake_useragent库导入UserAgen类
from fake_useragent import UserAgent
url = 'http://www.baidu.com'
# 实例化UserAgent类创建了一个UserAgent对象
# 实例化对象语法:对象 = 类名( )
ua = UserAgent()
# headers变量名,数据类型为字典
# 字典的键为User-Agent
# 字母的名为ua.random
# ua是上面生成的一个UserAgent对象
# random是UserAgent类的一个方法,作用是随机生成一个User-Agent
headers = {'User-Agent': ua.random}
# response变量名,这里是一个响应对象,
# response包含服务器返回的状态码、响应头和响应体等信息。
# requests库名
# get是requests库的一个方法,作用是向网页发送请求
# url采纳表示要请求的网址
# headers传递的是请求头信息
response = requests.get(url=url, headers=headers)
print("response的类型", type(response))
print("HTTP响应的状态码", response.status_code)
print("HTTP响应的编码方式", response.encoding)
print("HTTP响应的推测编码方式", response.apparent_encoding)
print("HTTP请求对象", response.request)
print("HTTP响应的URL地址", response.url)
#print(response.text)
#print(response.content)
【终端输出】
response的类型 <class 'requests.models.Response'>
HTTP响应的状态码 200
HTTP响应的编码方式 utf-8
HTTP响应的推测编码方式 utf-8
HTTP请求对象 <PreparedRequest [GET]>
HTTP响应的URL地址 http://www.baidu.com/
最后2个输出的是网页的文本内容,因为太占篇幅,这里不做输出,有需要的自己查看。
微信扫一扫
关注该公众号