当前位置: 首页 > article >正文

爬虫(requsets)笔记

1、request_基本使用

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

一个类型六个属性

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

2、requests_get请求

定制参数

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

# 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编码
# 不需要请求对象定制
# 请求资源路径中的?可加可不加

3、request_post请求

getpost区别?

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


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获取数据

示例 :获取 百度一下

代码如下:


# 使用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)



运行结果:


http://www.kler.cn/news/16670.html

相关文章:

  • Contest3047 - 计科2101~2104算法设计与分析上机作业04
  • JavaScript 笔记
  • 如何安装Auto-GPT
  • Java+springboot开发的医院HIS信息管理系统实现,系统部署于云端,支持多租户SaaS模式
  • RK3588 lt16911uxc hdmi in
  • 【郭东白架构课 模块二:创造价值】22|节点三:什么样的风险才算是重大风险?
  • 《花雕学AI》解锁ChatGPT潜力!183个最佳提示语,助您充分利用人工智能技术
  • 数据埋点1
  • 设计模式:创建型设计模式、结构型设计模式
  • 香港服务器租用攻略:如何优化用户体验?
  • 基于海鸥算法的极限学习机(ELM)回归预测-附代码
  • Jenkins + Gitlab 实现项目自动化构建及部署
  • 你真的会跟 ChatGPT 聊天吗?(上)
  • 业务维度digest日志的记录与监控方案
  • 零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案
  • Nginx—在linux的ubuntu系统上的安装使用
  • 协同过滤算法深入解析:构建智能推荐系统的核心技术
  • Leetcode力扣秋招刷题路-0902
  • 一招解决ChatGPT对话经常中断问题:KeepChatGPT插件
  • Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0
  • 爬虫大全:从零开始学习爬虫的基础知识
  • 【每日一题】
  • ubuntu 安装 notepad++,显示中文菜单,并解决中文乱码问题
  • vue 高德地图 —— 点标记、信息弹窗、网页导航、获取经纬度及当前城市信息
  • 正则表达式学习笔记
  • Android内存优化场景
  • 01-环境搭建 尚筹网
  • Java异步编程
  • 【MySQL】交叉连接、自然连接和内连接查询
  • 普通人,自学编程,5个必备步骤