requests 模块简单高效,常用于爬虫。Python 内置了 requests 模块,该模块主要用来发送 HTTP 请求,每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。
导入requests数据包
指定发送请求的url地址
由于多数网站都有监测机制,为保证正常爬取页面,应进行UA伪装
发送请求并用变量接收。应根据实际返回数据情况调用相应的属性方法
例如:返回数据为json数据则调用json()方法;返回数据为HTML文件则用test属性等
将返回数据持续化存储
# -*- coding: utf-8 -*-
import requests
def main():
# 指定url
url = input("请输入要爬取网站的地址:")
# UA伪装
headers = {
'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64; rv: 108.0) Gecko / 20100101 Firefox / 108.0'
}
# 发起请求,用变量接收
response = requests.get(url=url, headers=headers).text
print("爬取结果如下:")
print(response)
# 持久化存储,根据需求可修改!!!!
# with open('./sougou_text.html', 'w', encoding='utf-8') as fp:
# fp.write(page_text)
# print('over!')
if __name__ == '__main__':
main()
requests 方法 | 用法 |
---|---|
get(url, params, headers) | 发送 GET 请求到指定 url |
post(url, data, headers) | 发送 POST 请求到指定 url |
request(method, url,headers) | 向指定的 url 发送指定的请求方法 |
1、通常情况下我们使用最多的requests请求方法是post和get类型。
2、requests请求方法,根据实际需求可传入多个参数。经常使用的参数例如url,data,headers等。
3、客户端向服务器发送请求,服务器根据headers确定客户端的浏览器类型,从而返回适配对应浏览器的内容。因此爬取页面前应用字典封装handers来伪装身份。
4、post和get方法传入参数均应使用字典封装。
调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。
属性/方法 | 用法 |
---|---|
reason | 响应状态的描述,比如 Not Found /OK |
text | 返回响应的内容,unicode 类型数据 |
json() | 返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误) |
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://zhidao.baidu.com/')
# 响应状态的描述
print(x.reason)
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://zhidao.baidu.com/')
# 返回响应的内容,unicode 类型数据
response = x.text
# 打印输出
print(response)
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://www.runoob.com/try/ajax/json_demo.json')
# 调用json()方法
response = x.json()
# 返回 json 数据
print(response)
# 如果需要将json数据持续化存储,还需要导入json包
每一个网站都结构不同,网页爬虫的重要前提是对爬取页面框架进行详细了解。应对返回数据和页面标签结构等内容有深入了解后,再进行特定爬虫代码编写。