使用Fiddler查看金山翻译,发现其内容是在网页上。因此request.get访问的可能性比较大。
这里先补一下网站知识:
打开浏览器,在地址栏输入URL,回车,出现网页内容。整个过程发生了什么?其中的原理是什么?以下进行整理和总结。
整个过程可以概括为几下几个部分:
(1)域名解析成IP地址; (2)与目的主机进行TCP连接(三次握手); (3)发送与收取数据(浏览器与目的主机开始HTTP访问过程); (4)与目的主机断开TCP连接(四次挥手);
其中跟js相关的是(3)
(3)的具体过程如下:
1)浏览器向域名发出HTTP请求; 2)该GET方法报文通过TCP->IP(DNS)->MAC(ARP)->网关->目的主机; 3)目的主机收到数据帧,通过IP->TCP->HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML形式数据(HTTP响应);[ 从请求信息中获得客户机想访问的主机名。从请求信息中获取客户机想要访问的web应用(web应用程序指提供浏览器访问的程序,简称web应用)。从请求信息中获取客户机要访问的web资源。(web资源,即各种文件,图片,视频,文本等)读取相应的主机下的web应用,web资源。用读取到的web资源数据,创建一个HTTP响应。]
4)该HTML数据通过TCP->IP(DNS)->MAC(ARP)->网关->我的主机; 5)我的主机收到数据帧,通过IP->TCP->HTTP->浏览器,浏览器以网页形式显示HTML内容。
HTTP请求由三部分组成:请求行、消息报头、请求正文 请求方法=Method Request-URI HTTP-Version CRLF ?
? ? ? Method表示请求方法(GET、POST、HEAD、PUT、DELETE、CONNECT),常用到的下边两个GET ? ? 请求获取Request-URI所标识的资源、 ? ? POST ? ?在Request-URI所标识的资源后附加新的数据; ? ? ? Request-URI是一个统一资源标识符; ? ? ? HTTP-Version表示请求的HTTP协议版本; ? ? ? CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。 ?
下边是访问源码:
import requests
import json
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import urllib3
urllib3.disable_warnings()
if __name__=="__main__":
url="https://www.iciba.com/word"
#https://www.iciba.com/word
query="坚持"
param={
"w":query,
}
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1;Win64;x64;rv:98.0) Gecko/20100101 Firefox/98.0"
}
response=requests.get(url=url,headers=headers,params=param,verify=False)
print(response.text)
|