爬虫(requsets)笔记

一、request_基本使用

pip install requests -i https://pypi.douban.com/simple

一个类型六个属性

|---------------|-----------|
| r.text | 获取网站源码 |
| r.encoding | 访问或定制编码方式 |
| r.url | 获取请求的url |
| r.content | 响应的字节类型 |
| r.status_code | 响应的状态码 |
| r.headers | 响应的头信息 |

python 复制代码
import requests

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

resopnse=requests.get(url=url)

# 第一类型和六个属性
# Response类型
print(type(resopnse))

# 设置响应的编码格式
resopnse.encoding='utf-8'
# 以字符串的形式
print(resopnse.text)

# 返回一个url地址
print(resopnse.url)

# 返回的是二进制数据
print(resopnse.content)

# 返回响应的状态码
print(resopnse.status_code)

# 返回的是响应头
print(resopnse.headers)

二、requests_get请求

定制参数

|-------------------|
| 1、参数使用params 传递 |
| 2、参数无需urlencode编码 |
| 3、不需要请求对象的定制 |
| 4、请求资源路径中?可加可不加 |

python 复制代码
# urllib
# 1 一个类型六个方法
# 2 get 请求
# 3 post 请求
# 4 ajax get 请求
# 5 ajax post 请求
# 6 cookie登录
# 7 代理

# requsets
# 1 一个类型六个属性
# 2 get 请求
# 3 post 请求
# 4 代理
# 5 cookie 验证码

import requests

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

headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

data={
    'wd':'北京'
}

# url   请求资源路径
# params 参数
# kwargs 字典
response=requests.get(url=url,params=data,headers=headers)

content=response.text

print(content)

# 参数使用params传递
# 参数无需urlencode编码
# 不需要请求对象定制
# 请求资源路径中的?可加可不加

三、request_post请求

get和post区别?

|--------------------------------------------|
| 1: get 请求的参数名字是 params post 请求的参数的名字是 data |
| 2: 请求资源路径后面可以不加? |
| 3: 不需要手动编解码 |
| 4: 不需要做请求对象的定制 |

python 复制代码
import requests

url='https://fanyi.baidu.com/sug'

headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

data={
    'kw':'eye'
}

#url 请求地址
#data 请求参数
#kwarg 字典
response=requests.post(url=url,data=data,headers=headers)

content=response.text


obj=response.json()
print(obj)

#总结
# 1 post请求 是不需要编解码
# 2 post请求的参数是data
# 3 不需要请求对象的定制

四、使用requsests和xpath获取数据

示例 :获取 百度一下

代码如下:

python 复制代码
# 使用requests和Xpath获取数据
from lxml import etree
import requests

url = 'https://www.baidu.com/'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) Chrome/65.0.3325.181'}

response = requests.get(url,headers = headers)

# 设置响应的编码格式
response.encoding='utf-8'

# 获取网页源码
content= response.content.decode('utf-8')
# print(content)

# xpath解析
html=etree.HTML(content,parser=etree.HTMLParser(encoding='utf-8'))
request=html.xpath('//*[@id="su"]/@value')[0]
print(request)

运行结果:

相关推荐
橙 子_2 小时前
基于 Amazon Nova Sonic 和 MCP 构建语音交互 Agent
python
宇寒风暖4 小时前
Flask 框架全面详解
笔记·后端·python·学习·flask·知识
哪 吒4 小时前
【2025C卷】华为OD机试九日集训第3期 - 按算法分类,由易到难,提升编程能力和解题技巧
python·算法·华为od·华为od机试·2025c卷
W.KN5 小时前
Servlet 学习笔记
笔记·学习·servlet
rockmelodies5 小时前
RSA 解密逻辑
开发语言·python
Tobiichiorigami.6 小时前
Python训练Day30
python
lingggggaaaa6 小时前
小迪安全v2023学习笔记(五十讲)—— 持续更新中
笔记·学习·安全·web安全·网络安全
Dxy12393102166 小时前
python创建一个excel文件
开发语言·python·excel
jxy pro max7 小时前
Corrosion2靶机练习笔记
服务器·网络·笔记