自制瀑布流型爬虫(思路适用很多网站)
文章目录
- BULLSHIT
- 翻页
- 网页源代码
- 代码示例
BULLSHIT
之前误打误撞写过一篇《自制翻页型爬虫(思路适用很多网站)》,最近遇到瀑布流型的网站,于是继续整理一下有关瀑布流型网站的爬虫思路。
举例网站:http://www.dunkhome.com/products/search
翻页
看一下瀑布流型的网页是如何翻页的:
点击加载更多
页面下方会加载更多的商品(有些网址是往下滚动的时候自动加载,原理一样),但是浏览器地址栏的网址不会改变,那么怎么才能找出类似翻页的规律呢?
鼠标右键点选检查
,出现如下页面,选择Network
一栏,持续点击之前看到的加载更多
进行商品加载,XHR
一栏会依次出现数个元素(这里有3个,即图中被蓝色选中的地方):
依次点击每个元素的Name
列,在Header
列找到Request URL
的值,发现规律:
http://www.dunkhome.com/products/load_more?c_id=&brand_id=&keyword=&sort=&activity_id=&page=2
http://www.dunkhome.com/products/load_more?c_id=&brand_id=&keyword=&sort=&activity_id=&page=3
http://www.dunkhome.com/products/load_more?c_id=&brand_id=&keyword=&sort=&activity_id=&page=4
…
每加载更多
一次,链接变动一次,可以将其看成翻页的页面变化规律。利用这个链接变化规律做循环,就能持续下载需要的图片。 ?
网页源代码
将上面获得的链接打开:
ctrl+u
打开网页源代码:
找图片链接,发现都在src="(.*?).jpg
字段里面,提取出来,进行下载即可 ?
代码示例
#encoding=utf-8
import re
import os
import urllib.request
import urllib
from urllib.request import urlretrieve
import sys
import requests
from bs4 import BeautifulSoupdef read_pageHtml(url):# 获取网页源代码htmlr=requests.get(url)bsObjHtml=BeautifulSoup(htmlr.text, features="lxml")return bsObjHtmlimglist = []
c=1
for a in range(1, 21):# 设置网页循环url = 'http://www.dunkhome.com/products/load_more?c_id=1&brand_id=&keyword=&sort=&activity_id=&page='+str(a)# 网址规律data = read_pageHtml(url).__str__()rule = r'src="(.*?).jpg'# 图片链接的提取规则imglist = re.findall(rule, data)# 查找所有图片链接print(imglist, a)for each in imglist:# 对每个图片链接进行下载try:opener = urllib.request.build_opener()opener.addheaders = [('User-agent', 'Mozilla/5.0')]urllib.request.install_opener(opener)urllib.request.urlretrieve(each+'.jpg', '/home/dh/dh'+str(c)+'.jpg')c=c+1except:pass
hope it helps ?
自制瀑布流型爬虫(思路适用很多网站)相关推荐
- python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一)
python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二.数据清洗及存储) 爬起疫情数据,有两个网址: 1.百度:链接 2.丁香园疫情:链接 在这两个中,丁香园的爬虫相对简单一点,所以今天就展示一 ...
- 爬虫抓取页面数据原理(php爬虫框架有很多 )
爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...
- Python爬虫自学之第(零)篇——爬虫思路和request模块使用
题外话: <Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元>相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 爬虫思路 无思路不成器,如果 ...
- 从抓取豆瓣电影聊高性能爬虫思路(纯干货)
从抓取豆瓣电影聊高性能爬虫思路 本篇文章将以抓取豆瓣电影信息为例来一步步介绍开发一个高性能爬虫的常见思路. 寻找数据地址 爬虫的第一步,首先我们要找到获取数据的地址.可以先到豆瓣电影 首页 去看看. ...
- C++编写爬虫脚本爬取网站图片
C++编写爬虫脚本爬取网站图片 整体代码设计思路 具体功能实现 初始化网络库 url中爬取图片 获取网页源代码 连接主机 url中获取主机名和文件名 html中提取连接 html中提取图片链接 获取并 ...
- 记第一次Python爬虫-----五块五毛网站小说
事情要从那个吃了蝙蝠的人开始说起(2020.02.03记)...... 一.前因 因为哪些个吃蝙蝠的人,让我有足够的时间和充分的理由,可以待在家不出门,也不会被嫌弃,于是,待久了,人总要无聊,于是开始 ...
- python爬虫思路流程_python基础教程之【Python爬虫】爬了七天七夜,终|python基础教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/ 起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步.但是博客园对用户的排名体系相 ...
- 为什么很多网站的验证码都设置得肉眼都很难识别?
欢迎访问网易云社区,了解更多网易技术产品运营经验. 首先来谈谈验证码的机制,验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作.而对于没有验证码的场景,比如用户登陆,则机器可以同时.大 ...
- python网络爬虫_Python网络爬虫——爬取视频网站源视频!
原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...
- 爬虫爬取二次元网站美女图片
爬虫爬取二次元网站美女图片 前言 xpath解析 需求分析 代码编写 总代码 前言 本次需要爬取二次元网站cos板块下的图片 需要用到request模块与lxml模块,所以请提前安装好这两个模块,打开 ...
最新文章
- 使用pt-slave-delay实现mysql的延迟备份
- java中synchronized的用法详解
- 数字图像处理:第二十三章 基于内容的图象与视频检索
- 读《JavaScript dom编程艺术(第2版)》笔记 1-2
- gluPickMatrix和glReadPixels
- RabbitMQ的5种队列_订阅模式_入门试炼_第7篇
- Android之NetworkOnMainThreadException异常
- wpf label字体为斜体_2020年趋势:20款流行字体大预测
- .NET重要技术思考
- Lattice Diamond Reveal SerDes Debug Core简明教程(For ECP5)
- 易语言linux静态编译失败,易语言静态编译连接失败
- 四、博客详情页完成《iVX低代码仿CSDN个人博客制作》
- HTC T328W刷机包 仿三星S5 UI美化 精简 S5下拉
- xpdf工具(PDF转图片工具)
- win+linux双系统实现efi共存(即通过linux启动界面切换系统)
- 记录自己学习尚硅谷javaweb2022版中遇到的一些问题
- c语言禁用键盘,C/C++ 禁用鼠标键盘
- Android 实现涂鸦笔效果
- iOS 分析MVC、MVP、MVVM、VIPER
- 忘记Excel文件打开密码,怎么办?