python爬虫—requests

这篇具有很好参考价值的文章主要介绍了python爬虫—requests。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装

pip install requests

二、基本使用

1、基本使用

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

import requests
 
url = 'http://www.baidu.com'
 
response = requests.get(url=url)
 
# 一个类型 六个属性
# Response 类型
print(type(response))
 
# 设置响应的编码格式
response.encoding = 'utf-8'
 
# 以字符串形式返回网页源码
print(response.text)
 
# 返回url地址
print(response.url)
 
# 返回的是二进制的数据
print(response.content)
 
# 返回响应的状态码
print(response.status_code)
 
# 返回的是响应头
print(response.headers)

2、与urllib区别


# urllib
# (1) 一个类型以及六个方法
# (2)get请求
# (3)post请求   百度翻译
# (4)ajax的get请求
# (5)ajax的post请求
# (6)cookie登陆 微博
# (7)代理


# requests
# (1)一个类型以及六个属性
# (2)get请求
# (3)post请求
# (4)代理
# (5)cookie  验证码


import requests

url = 'https://www.baidu.com/s'

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

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



############################### GET ##########################

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

content = response.text

print(content)

# 总结:
# (1)参数使用params传递
# (2)参数无需urlencode编码
# (3)不需要请求对象的定制
# (4)请求资源路径中的?可以加也可以不加





############################# POST ##########################

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

content =response.text

import json

obj = json.loads(content,encoding='utf-8')
print(obj)

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

 

三、代理

import requests
 
url = 'http://www.baidu.com/s?'
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}
 
data = {
    'wd' : 'ip'
}
 
proxy = {
    'http':'120.194.55.139:6969'
}
 
response = requests.get(url=url,params=data,headers=headers,proxies=proxy)
 
content = response.text
 
with open('daili.html','w',encoding='utf-8')as fp:
    fp.write(content)

四、cookie定制(破解验证码)

找登录接口

python爬虫—requests,python,爬虫,python,爬虫,开发语言

 找参数的值

python爬虫—requests,python,爬虫,python,爬虫,开发语言

python代码

import requests
 
# 登录页面的url地址
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}
 
# 获取页面的源码
response = requests.get(url=url,headers=headers)
content = response.text
 
# 解析页面源码  获取__VIEWSTATE  __VIEWSTATEGENERATOR      这里使用bs4解析
from bs4 import BeautifulSoup
 
soup = BeautifulSoup(content,'lxml')
 
#   获取__VIEWSTATE
viewstate = soup.select('#__VIEWSTATE')[0].attrs.get('value')
#   获取__VIEWSTATEGENERATOR
viewstategenerator = soup.select('#__VIEWSTATEGENERATOR')[0].attrs.get('value')
 
# 接下来处理验证码
# 获取验证码图片
code = soup.select('#imgCode')[0].attrs.get('src')
code_url = 'https://so.gushiwen.cn' + code
 
# 下载验证码图片
# import urllib.request
# urllib.request.urlretrieve(url=code_url,filename='code.jpg')
# 使用上面方法下载验证码后会使验证码更新,从而使的每次都会提醒验证码错误
# requests里面有个方法session() 通过session的返回值就能使请求变为一个对象
session = requests.session()
# 验证码的url地址
response_code = session.get(code_url)
# 注意此时要使用二进制的数据 因为我们要是用的是图片的下载
content_code = response_code.content
# wb的模式就是将二进制的数据写到文件
with open('code.jpg','wb')as fp:
    fp.write(content_code)
 
 
# 获取了验证码的图片之后 下载到本地 然后观察验证码 然后在控制台输入这个验证码 就可以将这个值给code的参数
code_name = input('请输入你的验证码:')
 
 
# 点击登录
url_post = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
 
data_post = {
    '__VIEWSTATE': viewstate,
    '__VIEWSTATEGENERATOR': viewstategenerator,
    'from': 'http://so.gushiwen.cn/user/collect.aspx',
    'email': '自己账号',
    'pwd': '自己密码',
    'code': code_name,
    'denglu': '登录'
}
 
response_post = session.post(url=url_post,headers=headers,data=data_post)
 
content_post = response_post.text
 
with open('gushiwen.html','w',encoding='utf-8')as fp:
    fp.write(content_post)

 五、破解验证码——超级鹰(公司级别)

登录超级鹰官网:超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大

若之前没有注册,则需要注册新的用户,并且进行充值。

 进入 用户中心 后点击 开发文档

python爬虫—requests,python,爬虫,python,爬虫,开发语言

选择袭击使用的语言案例。

python爬虫—requests,python,爬虫,python,爬虫,开发语言

 下载好压缩包解压,并且把一下两个文件在pycharm中打开。

python爬虫—requests,python,爬虫,python,爬虫,开发语言

  代码中修改如下四处地方。

python爬虫—requests,python,爬虫,python,爬虫,开发语言

软件ID的获取方法如下:

进入用户中心  --> 软件id  -->  生成软件ID --> 复制软件id到代码中

python爬虫—requests,python,爬虫,python,爬虫,开发语言

 到此,运行代码就可以自动识别图片中的验证码了。 文章来源地址https://www.toymoban.com/news/detail-689534.html

到了这里,关于python爬虫—requests的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python爬虫】requests库

    1.requests库的介绍 ​ requests 是 Python 语言编写,基于 urllib3 ,采用 Apache2 Licensed 开源协议的HTTP库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。是 Python 实现的简单易用的 HTTP 库。 Requests 中文文档:http://docs.pythonrequests.org/zh_CN/latest/index.html ​ 解决

    2024年02月16日
    浏览(40)
  • 【python爬虫】设计自己的爬虫 1. request封装

    通过requests.session().request 封装request方法 考虑到请求HTTP/2.0 同时封装httpx 来处理HTTP/2.0的请求 通过is_http2来区分 测试代码如下

    2024年02月08日
    浏览(52)
  • Python爬虫之requests模块

    requests文档http://docs.python-requests.org/zh_CN/latest/index.html 1、requests模块的作用: 发送http请求,获取响应数据 2、requests模块是一个第三方模块,需要在你的python(虚拟)环境中额外安装 pip/pip3 install requests 3、requests模块发送get请求 需求:通过requests向百度首页发送请求,获取该页面

    2024年02月09日
    浏览(44)
  • python爬虫——request模块讲解,Python详解

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST, 浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 (二)http常见请求参数 url:请求url地址 headers:请求头 **data:发送编码为表

    2024年04月26日
    浏览(33)
  • python-requests库(爬虫)

    网页数据获取有python自带的urllib,也有第三方库requests requests.request(url) 构造一个请求 requests.get(url,params=None) 发送get请求,结果为response对象 requests.post(url,data=None,json=None) 发送post请求 requests.put() 发送put请求 requests.head() 获取html的头信息 requests.delete() 提交删除请求 requests.pat

    2024年02月08日
    浏览(77)
  • python爬虫_requests入门指引

    大家好,我是yma16,本文分享关于python的requests库用法。 该系列文章: python爬虫_基本数据类型 python爬虫_函数的使用 requests可以用来发送http请求。 对比浏览器发送的请求 requests是在python的运行环境发送请求,不存在限制跨域,无ui界面,优势在于自动化 浏览器发送请求被浏

    2024年02月11日
    浏览(54)
  • python爬虫2:requests库-原理

    前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 目录结构 1. 概述 ​ python其实自带一个请求库,即urllib,不过这个库并不是很好使,因此大部人都还是采用的第三方库requests。 ​

    2024年02月14日
    浏览(36)
  • Python爬虫—requests模块简单应用

    requests的作用与安装 作用:发送网络请求,返回响应数据 安装:pip install requests requests模块发送简单的get请求、获取响应 需求:通过requests向百度首页发送请求,获取百度首页的数据 response的常用属性: response.text 响应体str类型 response.encoding 从HTTP header中猜测的响应内容的编

    2024年01月24日
    浏览(53)
  • Python(request)爬虫有多强大?

    requests是Python中的一种HTTP客户端库,用于发送HTTP请求并获取服务器响应。使用requests库可以轻松地进行常见的HTTP操作,如GET、POST、PUT、DELETE等,支持HTTPS和HTTP连接以及摘要验证、基本认证等身份验证方式。 因此,Python的requests库是一个很棒的选择,如果您需要编写一个简单

    2024年02月09日
    浏览(35)
  • Python(request)爬虫有多强大

    Python 的 requests 库是一个非常强大的网络爬虫工具,可以帮助开发人员快速,高效地从各种网站获取信息并处理数据。以下是 requests 库的一些强大功能:   1. 简单易用:requests 库的 API 设计合理,易于学习和使用。使用 requests 库,没有太多的编码门槛,几乎可以处理页面上任

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包