教程:优采云采集器如何批量采集下载瀑布流网站图片
优采云 发布时间: 2022-10-22 08:47教程:优采云采集器如何批量采集下载瀑布流网站图片
可编辑
优采云采集器如何批量采集下载瀑布网站图片
随着瀑布流网站、AJAX网页和网站表达形式等技术的普及,技术架构和网页结构与以往传统的网站不同,图像呈现形式更具表现力。灵活的。出于市场调研或采集的需要,部分企业或个人需要对此类网站进行网页数据采集。本文介绍了遇到这种类型的网站,我们如何使用优采云采集器快速采集数据。
示例网址:
观察示例网址,发现有以下特点: 1、页面上的图片不是一次加载的,需要滚动多次才能滚动到底部。这种网站属于瀑布流网站(新浪微博也是这样)。
2、详情页不能点击标题进入,只能点击图片进入。
相关 采集 教程:
新浪微博数据采集
58城市资讯采集
搜狗微信文章采集
第 1 步:创建一个 采集 任务
1.进入主界面,选择自定义模式
优质文档,欢迎下载
教程:简易网页采集|4
输入我们要搜索的词条,以禅墨云为例,我们会在网址栏中找到,一段长长的字符
禅墨云&rsv_spt=1&rsv_iqid=0xaea3079900012b5e&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=23&rsv_sug1=24&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&inputT=12683&rsv_sug4=13427
其实我们把下面的都删掉了,只留下陈沫云之前的:
禅墨云
有时候url中的参数不止一个,也就是说我们需要让搜索词动态化,所以我们需要url进行简单的处理:封装成字典
kw = input('enter a word:')
param = {'wd':kw}
这时候可以去掉之前的url入口,变成:
https://www.baidu.com/s?
这样,搜索结果就变成了我们想要搜索的任何词
UA检测和伪装
UA检测:门户网站的服务器会检测相应请求载体的身份。如果检测到被请求的运营商的身份是某个浏览器,则说明这是一个正常的请求。但是,如果检测到请求的载体标识不是基于某个浏览器,则说明该请求是异常请求(爬虫检测),服务器会拒绝该请求。
UA伪装:让爬虫对应的请求载体身份伪装成浏览器
其实只需要在url前面加上headers,里面收录键值User-Agent和详细值值
在浏览器中(以Chrome为例),点击F12,点击network,刷新后会出现很多文件,点击任意一个,打开headers,找到User-Agent对应的部分,然后复制其内容。
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
之后就是正常操作了。
程序源代码
以下是完整的程序和评论,仅供学习
# --coding:utf-8 --
#UA:User-Agent(请求载体的身份标识)
#UA检测:门户网站的服务器会检测对应请求载体的身份标识,如果检测到请求的载体身份标识为某一款浏览器
#说明这是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器,则表示该请求为
#不正常请求(爬虫检测),则服务端就会拒绝该次请求。
#UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器
import requests
if __name__ == '__main__':
<p>
##UA伪装:将对应的User-Agent封装到一个字典中
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
url = 'https://www.baidu.com/s?'
#处理url携带的参数:封装到字典中
kw = input('enter a word:')
param = {'wd':kw}
#对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
response = requests.get(url=url,params=param,headers=headers)
page_text = response.text
filename = kw+'.html'
with open(filename,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(filename,'保存成功!')
</p>
写在背面
好的!这就是 文章 的全部内容!