百度网页关键字抓取(覆盖原资源patch向html网页提交局部修改需求改变资源)
优采云 发布时间: 2022-01-12 15:02百度网页关键字抓取(覆盖原资源patch向html网页提交局部修改需求改变资源)
HTTP超文本传输协议:它是一种基于“请求和响应”模型的无状态应用层协议
url 格式[:port][路径]
主机:合法的互联网主机域名或IP地址
port:端口号,默认端口为80,可省略
path:请求资源的路径
get() 获取html网页的主要方法
获取html网页头部信息的head方法
post 向html页面提交post请求的方法附加一个新资源
put 向 html 网页提交 put 请求以存储资源,覆盖原创资源
patch 向 html 页面提交部分修改请求以更改那里的资源的部分内容
delete 向html网页提交删除请求,删除url位置存储的资源
put和patch的区别:
假设 url 位置中有一组 20 个数据字段。如果要更新用户名,其他保持不变。
补丁,只向url提交用户名的部分更新请求
put:20个字段都需要提交到url,未提交的字段将被删除
谨慎使用 put
请求的head()方法
requests.rquest(get, url, 其他参数)
其他13个参数包括,前四个是最重要的
params:字典或字节序列,作为参数添加到url中,用于过滤url的部分资源
data:字典、字节序列或文件对象,作为请求的内容
json : json格式的数据,作为请求的内容
标头:字典、http 自定义标头
以及cookies认证文件等13个访问控制参数
注意:用得最多的是get,因为安全问题,网站的大部分内容是不允许修改的。爬虫最常用的方法是提取,而不是提交。
第一部分的讨论主题是爬取一个网页100次看爬取时间。以下是两位同学的总结。与其他答案相比,时间要短得多。我不知道我的代码是否有问题。
(三)网络爬虫引起的问题。
爬虫分类:
1. 抓取网页并使用网络请求库 90%
小规模数据量小,对速度不敏感
2.爬取网站爬取系列网站scrapy库
中规模数据量大,爬取速度敏感。爬行速度必须赶上更新速度。
例如爬行
3.爬取全网需要自定义开发
大型搜索引擎爬取速度的关键
带来问题:
1.爬虫会对服务器性能产生“骚扰”影响
2.服务器上的数据是专有的
3.隐私披露
爬虫限制:
1.源码审查判断user-agent
2.公告机器人协议
机器人协议:
功能:网站告诉爬虫哪些数据可以爬,哪些不能爬
格式:robots.txt 放在网站的根目录下
遵守协议:
可以不服从,但很可能触犯法律
但是,还是要服从的,人类的行为是不能服从的。
(四)具体情况
(1)京东商品页面爬取
导入请求
网址=""
尝试:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
打印(r.text[:1000])
除了:
打印(“失败”)
(二)亚马逊产品页面
亚马逊等一些网站不支持网络爬虫爬取信息,所以会进行source review,限制user-agent
此时我们可以修改user-agent为浏览器名称Mozilla/5.0。
需要通过headers字段修改
r.raise_for_status() 如果状态码是 200 则成功不是 200 表示异常
(以下代码为Wie2017的代码,从爬取结果可以看出亚马逊添加了反爬虫验证,导致爬取失败。)
(3)百度360搜索关键词提交
提交 关键词 以输出搜索结果
主要是搜索引擎关键词提交接口,所以关键是要构造url来实现
360
params:字典或字节序列,作为参数添加到url中,用于过滤url的部分资源
(4)网络图片的抓取和存储
关键点是:
1.写出存储位置
2.图片为二进制格式,所以存储格式为二进制r.content
(5)自动查询ip地址归属地
1.ip138 URL可以手动查询ip地址
.2 打印所有文本可能会使空闲无效,因此打印最后 500 个字符
总结:
1.案例 2 和 4 没有返回我们想要的结果,需要找出原因。
2.写代码并不难。最重要的是要综合考虑,无论什么情况都不要报错。