实操续:爬虫基础知识,浏览器最基本的配置方法

接着上篇,继续讲解http协议

老司机,带你用30行代码爬取高清美女写真,附安装包+源码

这里只讲解爬虫用得到部分;

浏览器的解析

F12打开,点击Network,F5刷新,就可以看到

在这里插入图片描述

HTTP客服端协议

在这里插入图片描述

url解析

在这里插入图片描述

http://www.demo.com:8080/list/index.php?boardID=5&ID=24618&page=1#name

1.协议部分

该URL的协议部分为“http:”,常见的有http:,和https:,其他的还有ftp,utp
在这里插入图片描述

2域名部分

该URL的域名部分为“www.demo.com”。
在这里插入图片描述

常见域名后缀有.com/.cn/.net/

在这里插入图片描述

内网通常使用IP作为域名

3.端口部分

跟在域名后面的数字是端口,域名和端口之间使用“:”作为分隔符。
端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80
在这里插入图片描述

4、虚拟目录部分:

从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。
虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/list/”
在这里插入图片描述

5、文件名部分:

从域名后的最后一个“/”开始到“?”为止,
是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分。
如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。
本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
在这里插入图片描述

6、锚部分:

从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分
在这里插入图片描述

7、参数部分:

从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
在这里插入图片描述

HTML 请求方法:Request Method:

get:

GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据(不修改)

Python模拟get请求
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
res = requests.get('http://www.baidu.com', params=payload)
print(res.url)
http://www.baidu.com?key1=value1&key2=value2&key2=value

post:

POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求

Python模拟post请求
import requests

# Request URL
url = 'https://www.XX.com/Goods/GoodsDetail'
# Request Data
data = dict(
    #参数
    id=13404
)
response = requests.post(url, data)
print(response)  #请求状态
print(response.content)  #返回结果

put:

PUT 用于将数据发送到服务器来创建/更新资源。
POST 和 PU T之间的区别在于 PUT 请求是幂等的(idempotent)。也就是说,多次调用相同的 PUT 请求将始终产生相同的结果。相反,重复调用POST请求具有多次创建相同资源的副作用。

# 使用urllib2
import urllib2
url="http://localhost"
param='{"userid":1}'
request=urllib2.Request(url.param)
request.add_header("Content-Type","application/json")
request.add_header("Accept","application/json")
request.get_method=lambda :"GET"#"GET,POST,PUT,DELETE"
response=urllib2.urlopen(request)
response_txt=response.read()
response_header=response.info()

DELETE

DELETE 方法删除指定的资源。

user-agent:

浏览器标识–出于兼容及推广等目的,很多浏览器的标识相同,因此浏览器标识并不能说明浏览器的真实版本,真实版本信息在 UA 字串尾部可以找到。

在这里插入图片描述

Python 添加ua


req = request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36')
# 正常访问
rsp = request.urlopen(req)
html = rsp.read().decode()
print(html)

结语:

掌握这个,对浏览器模拟有一个更加清晰的认知。
粉丝福利

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值