爬虫(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)

运行结果:

相关推荐
代码游侠13 小时前
C语言核心概念复习(三)
开发语言·数据结构·c++·笔记·学习·算法
卡布叻_星星13 小时前
清理缓存并重启 IDEA
笔记
Yaozh、13 小时前
【人工智能中的“智能”是如何实现的】从逻辑回归到神经网络(自用笔记整理)
人工智能·笔记·深度学习·神经网络·机器学习·逻辑回归
刘一说13 小时前
Java中基于属性的访问控制(ABAC):实现动态、上下文感知的权限管理
java·网络·python
一晌小贪欢13 小时前
Python 操作 Excel 高阶技巧:用 openpyxl 玩转循环与 Decimal 精度控制
开发语言·python·excel·openpyxl·python办公·python读取excel
铁蛋AI编程实战13 小时前
Falcon-H1-Tiny 微型 LLM 部署指南:100M 参数也能做复杂推理,树莓派 / 手机都能跑
java·人工智能·python·智能手机
傻小胖13 小时前
18.ETH-GHOST-北大肖臻老师客堂笔记
笔记·区块链
今儿敲了吗13 小时前
11| 子集
c++·笔记·算法
Gain_chance13 小时前
29-学习笔记尚硅谷数仓搭建-DWD层交易域下单事务事实表和交易域支付成功事务事实表
数据仓库·hive·笔记·学习·datagrip
云游云记13 小时前
php 高精度数学扩展 bcmath 知识笔记
笔记·php·bcmath