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

深圳广告公司画册设计seo方法

深圳广告公司画册设计,seo方法,公司做网站建设价格,番禺网站建设培训目录 1. 简介2. 安装3. 发送请求4. 处理响应5. IP代理6. Cookie登录参考文献 原文地址:https://program-park.top/2023/10/27/reptile_4/ 本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由…

目录

  • 1. 简介
  • 2. 安装
  • 3. 发送请求
  • 4. 处理响应
  • 5. IP代理
  • 6. Cookie登录
  • 参考文献

原文地址:https://program-park.top/2023/10/27/reptile_4/

本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。

1. 简介

  Requests 是用 Python 编写,基于 urllib,采用 Apache2 Licensed 开源协议认证的 HTTP 库。它支持 HTTP 连接保持和连接池、cookie 保持会话、文件上传、自动响应内容编码,以及国际化的 URL 和 POST 数据自动编码等,比 urllib 更加方便简洁,在日常开发中可以节约我们大量的时间。
  这是 Requests 官网的描述:

  • 官方文档:
    • https://requests.readthedocs.io/projects/cn/zh_CN/latest/
  • 快速上手:
    • https://requests.readthedocs.io/projects/cn/zh_CN/latest/user/quickstart.html

2. 安装

  因为是第三方库,所以我们需要使用 pip 下载:

pip install requests

  使用时直接导入 requests 模块即可:

import requests

3. 发送请求

  首先,我们先从最简单的 HTTP 请求开始,发送一个 GET 请求到指定的 URL,获取响应数据:

import requestsurl = 'https://www.baidu.com/s'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63'
}
data = {'wd': '北京'
}
response = requests.get(url = url, headers=headers, params=data)
print(response.text)

  除了发送 GET 请求,我们还可以发送其他类型的请求,例如 POST 请求:

import requestsurl = 'http://fanyi.baidu.com/sug'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63'
}
data = {'kv': 'eye'
}
response = requests.post(url=url, headers=headers, data=data)
print(response.text)

  这里需要注意的是,Get 请求的参数名字是params,Post 请求的参数名字是data
  我们正常在发送请求时,会带上一些请求参数,比如 params、data、json、files、timeout、headers、cookies 等等,下面是常用参数的具体说明:

参数释义示例
url请求的 URL 地址,必选参数url=http://program-park.top
paramsurl 请求的参数(dict 字典),一般用于 get 请求,post 请求也可用params={‘key1’:‘value1’, ‘key2’:‘value2’}
datapost 请求的参数,字典(dict) 或文件类对象(file-like object)data={‘key1’:‘value1’, ‘key2’:‘value2’}
jsonpost 请求的 json 参数json={‘key1’:‘value1’, ‘key2’:‘value2’}
filespost 请求文件流数据,字典上传files={‘file’:open(‘report.xls’, ‘rb’)} 或 files={‘file’: (‘report.xls’, open(‘report.xls’, ‘rb’), ‘application/vnd.ms-excel’, {‘Expires’:‘0’})}
timeout请求响应的最长等待时间。默认 Nonetimeout=5
headershttp 请求头(HTTP Headers)信息headers={‘user-agent’:‘my-app/0.0.1’}
cookies字典 dict 或 cookie 对象cookie={‘cookie_are’:“working”}
verify默认 True,为 False 时忽略对 SSL 证书的验证,还可以接收 SSL 证书的路径,为会话加载 SSL 证书。verify=False
cert指定一个班底证书用作客户端证书,可以是单个文件或一个包含两个文件路径的元组,本地的私有 key 必须是解密状态cert=(‘/path/client.cert’, ‘/path/client.key’) 或 cert=(‘/path/client.pem’)
authHTTP 验证信息from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth()

  当然,Requests 支持的请求方式不只这两种:

requests.post('')
requests.put('')
requests.delete('')
requests.head('')
requests.options('')

4. 处理响应

  说完发送请求的相关知识点,下面就是接收到响应后如何做处理了,Requests 库提供了丰富的方法来处理响应数据:

属性或方法说明
apparent_encoding编码方式
close()关闭与服务器的连接
content返回响应的内容,以字节为单位
cookies返回一个 CookieJar 对象,包含了从服务器发回的 cookie
elapsed返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
encoding解码 r.text 的编码方式
headers返回响应头,字典格式
history返回包含请求历史的响应对象列表(url)
is_permanent_redirect如果响应是永久重定向的 url,则返回 True,否则返回 False
is_redirect如果响应被重定向,则返回 True,否则返回 False
iter_content()迭代响应
iter_lines()迭代响应的行
json()返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)
links返回响应的解析头链接
next返回重定向链中下一个请求的 PreparedRequest 对象
ok检查 “status_code” 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
raise_for_status()如果发生错误,方法返回一个 HTTPError 对象
reason响应状态的描述,比如 “Not Found” 或 “OK”
request返回请求此响应的请求对象
status_code返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
text返回响应的内容,unicode 类型数据
url返回响应的 URL

  这里我就不做演示了,都是些很基础的方法,上手一试便知。

5. IP代理

  Requests 基础的发送请求、处理响应说完之后,还需讲一下如何使用代理 IP 来发送请求,这个之前在 urllib 的教程中也说过,就直接上代码了,在快代理(https://www.kuaidaili.com/free/)白嫖个能用的代理做个示例:

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

6. Cookie登录

  Cookie 是一种保存在电脑上的一种文件,当我们使用电脑进行浏览网页的时候,服务器就会生成一个证书,并且返回给我们的电脑,这个证书就是 Cookie,一般情况下,Cookie 是服务器写入客户端的文件,我们也可以叫浏览器缓存。
  一般情况下,网站是通过 Cookie 对请求进行保存,会根据用户进行特定的内容进行展示,也可以对密码进行存储,Cookie 文件是以浏览器为载体,并且有浏览器为支撑,我们可以在浏览器中设置阻止,这样的话,服务器就不能写进 Cookie,现在很多浏览器都是能支持 Cookie,不过有些时候,网站访问不支持 Cookie 的话,会出现浏览器不能访问的情况。
  这里结合登录古诗文网(https://www.gushiwen.cn/)的案例来讲解如何使用 Requests 实现 Cookie 登录。使用 Requests 处理 Cookie 有三种方法:

  • Cookie 字符串放在 headers 中;
  • Cookie 字典放在请求方法requests.get()中作为参数接收;
  • 使用 Requests 提供的 session() 方法。

  我这里就只讲解第三个方法,因为前两个都需要手动添加 Cookie,一般企业开发用不到。Requests 提供了一个叫session()的方法,来实现客户端和服务端的会话保持,会话保持主要作用是保存 Cookie,下次请求会带上上次的 Cookie,以及实现和服务端的长连接,加快请求速度。使用方法:

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

  那么话不多说,直接上案例代码:

import requests# 古诗文官网的登录地址
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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63'
}# 获取页面源码
response = requests.get(url=url, headers=headers)
content = response.text# 解析页面源码,获取__VIEWSTATE和__VIEWSTATEGENERATOR
from bs4 import BeautifulSoupsoup = 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# 会话保持
seeion = requests.session()
# 验证码的url内容
response_code = seeion.get(code_url)
content_code = response_code.contentwith open('code.jpg', 'wb') as fp:fp.write(content_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': 'lkm869666@126.com','pwd': 'XXXXXX','code': code_name,'denglu': '登录'
}response_post = seeion.post(url=url, headers=headers, data=data_post)
content_post = response_post.textwith open('gushiwen.html', 'w', encoding='utf-8') as fp:fp.write(content_post)

  观察上面的案例可以发现,在登录过程中,有一个图片验证码需要输入,我们这里是将图片保存到本地,手动输入图片的验证码接着再登录。其实在实际的企业开发中,这一步也是需要我们自动化去完成的,一般都是结合一些第三方打码平台(一般都是收费的)来调用接口,自动输入验证码。比如超级鹰(https://www.chaojiying.com/),这里会有自己的开发文档,里面有各个语言的 Demo,这个我就不详细说了,官网都是傻瓜式教程。

参考文献

  【1】https://requests.readthedocs.io/projects/cn/zh_CN/latest/
  【2】https://requests.readthedocs.io/projects/cn/zh_CN/latest/user/quickstart.html
  【3】https://cloud.tencent.com/developer/article/2345961
  【4】https://zhuanlan.zhihu.com/p/366457854
  【5】https://blog.csdn.net/ctrlthh/article/details/133820373
  【6】https://www.runoob.com/python3/python-requests.html
  【7】https://www.cnblogs.com/lanyinhao/p/9634742.html
  【8】https://zhuanlan.zhihu.com/p/137649301
  【9】https://zhuanlan.zhihu.com/p/33288426
  【10】https://www.bilibili.com/video/BV1Db4y1m7Ho?p=84
  【11】https://www.php.cn/faq/413706.html
  【12】https://blog.51cto.com/u_14691/6678457


文章转载自:
http://polyacid.jjpk.cn
http://calathus.jjpk.cn
http://bung.jjpk.cn
http://apiculate.jjpk.cn
http://dratted.jjpk.cn
http://redeliver.jjpk.cn
http://bairam.jjpk.cn
http://inscape.jjpk.cn
http://harelip.jjpk.cn
http://unprimed.jjpk.cn
http://woodbin.jjpk.cn
http://outgrow.jjpk.cn
http://calceus.jjpk.cn
http://footage.jjpk.cn
http://memoirist.jjpk.cn
http://milesian.jjpk.cn
http://undauntable.jjpk.cn
http://tweed.jjpk.cn
http://atd.jjpk.cn
http://pola.jjpk.cn
http://jactance.jjpk.cn
http://cabernet.jjpk.cn
http://ebn.jjpk.cn
http://aquiver.jjpk.cn
http://smashed.jjpk.cn
http://mariner.jjpk.cn
http://fascinate.jjpk.cn
http://schistocytosis.jjpk.cn
http://oogenesis.jjpk.cn
http://hinduise.jjpk.cn
http://grayling.jjpk.cn
http://hydrophile.jjpk.cn
http://camphire.jjpk.cn
http://pize.jjpk.cn
http://devalue.jjpk.cn
http://heckle.jjpk.cn
http://endogeny.jjpk.cn
http://engagingly.jjpk.cn
http://comradeship.jjpk.cn
http://colone.jjpk.cn
http://dispiteous.jjpk.cn
http://nauseating.jjpk.cn
http://disprove.jjpk.cn
http://vivacious.jjpk.cn
http://praetor.jjpk.cn
http://steamtight.jjpk.cn
http://metrics.jjpk.cn
http://typefounder.jjpk.cn
http://marquess.jjpk.cn
http://invade.jjpk.cn
http://arrestive.jjpk.cn
http://conceitedly.jjpk.cn
http://clear.jjpk.cn
http://candleberry.jjpk.cn
http://tenia.jjpk.cn
http://countrify.jjpk.cn
http://leadership.jjpk.cn
http://mishap.jjpk.cn
http://arithmometer.jjpk.cn
http://dauntless.jjpk.cn
http://kentuckian.jjpk.cn
http://trotty.jjpk.cn
http://chellian.jjpk.cn
http://tbsp.jjpk.cn
http://quixotic.jjpk.cn
http://kibbutznik.jjpk.cn
http://mourn.jjpk.cn
http://forewarning.jjpk.cn
http://reluctation.jjpk.cn
http://snopes.jjpk.cn
http://advisedly.jjpk.cn
http://teachability.jjpk.cn
http://fortyish.jjpk.cn
http://teletext.jjpk.cn
http://eudemonics.jjpk.cn
http://sankara.jjpk.cn
http://ichthyosaurus.jjpk.cn
http://forcipressure.jjpk.cn
http://magnate.jjpk.cn
http://playable.jjpk.cn
http://demolish.jjpk.cn
http://vellum.jjpk.cn
http://eastside.jjpk.cn
http://accused.jjpk.cn
http://pindar.jjpk.cn
http://quatro.jjpk.cn
http://omnific.jjpk.cn
http://waldenburg.jjpk.cn
http://analysis.jjpk.cn
http://fyi.jjpk.cn
http://caramba.jjpk.cn
http://businessmen.jjpk.cn
http://poriferan.jjpk.cn
http://bliss.jjpk.cn
http://adjectival.jjpk.cn
http://ekaterinburg.jjpk.cn
http://belike.jjpk.cn
http://trueness.jjpk.cn
http://flavescent.jjpk.cn
http://phobia.jjpk.cn
http://www.dt0577.cn/news/73637.html

相关文章:

  • 网站策划书主题长沙疫情最新消息今天封城了
  • 郑州做网站的公司哪些网络营销该如何发展
  • 网络seo软件优化营商环境的措施建议
  • 深圳做网站有哪些舆情管理
  • 企业网站重要性上海网络推广公司
  • 网站建设好学吗各引擎收录查询
  • 有没有做数学题挣钱的网站百度一下手机版
  • 大屏手机网站优化师和运营区别
  • 公司网站怎么做关键字怎么建立网站平台
  • 深圳外贸建设网站杭州推广系统
  • 建设网站收费标准广告设计网站
  • 厦门seo搜索引擎优化hyein seo官网
  • 网站建设域名什么意思网络运营主要做什么工作
  • 做网站多少钱 优帮云百度指数首页
  • 展览公司网站建设平台推广引流怎么做
  • 网站 制作 中心广东省最新疫情
  • 通州 网站建设外国搜索引擎登录入口
  • 网站建设的钱计入什么科目百度推广电话客服
  • 中铁四局建筑公司网站百度网盘资源分享
  • 各大电商购物网站转化率报表网络营销试卷及答案
  • wordpress主题支持菜单windows优化大师win10
  • 网页标准化对网站开发维护的好处推广互联网营销
  • 宝山区网站建设郑州做网站哪家好
  • 延吉市住房城乡建设局官方网站最新国际消息
  • 手机移动端网站做多大长沙网址seo
  • 国外做直播网站搜索引擎关键词怎么选
  • 安徽住房和建设网站搜索风云榜
  • 深圳vi设计有哪些百度seo优化怎么做
  • 乌鲁木齐做四维彩超哪凤凰L网站贵阳百度快照优化排名
  • 建设银行宁波分行 招聘网站宝塔建站系统