爬虫基础_01——正则
来源:互联网 发布:大学生网络受骗原因 编辑:程序博客网 时间:2024/06/04 20:05
今天这个爬虫比较简单,爬了一下花瓣网(美女图)的一页的图片。
这里只用了正则,主要思想是:利用正则匹配要爬取的图片url,然后下载图片存到本地;
下面是具体的代码:
# encoding = utf-8import reimport urllibimport requests#获取图片的urldef getHtml(url): page = urllib.request.urlopen(url) html= page.read() return html#获取网页的内容html = getHtml('http://huaban.com/boards/481662/')#正则匹配p= r'<img src="([.*\S]*)" width="\d{3}"'imgurls = re.findall(p, html.decode('utf-8'))#爬取图片x=1for imgurl in imgurls: print('http:'+imgurl) urllib.request.urlretrieve('http:'+imgurl, 'F:images/huaban/%s.jpg' % x) print("downloading %d"%x) x +=1
下面是爬到的图片:
因为这个页面的图片是下拉加载的,所以暂时只下载了40张,这个问题还在学习,希望有前辈指导一二;
写的比较糙,有问题麻烦爬友们指出。
这里小弟写的时候有2个小问题:
1、正则的匹配,方式很简单易懂,开始使用可能不太容易匹配成功,要反复多试几次才能熟练掌握;
2、imgurls = re.findall(p, html.decode('utf-8'))
这里如果没有带.decode(‘utf-8’),
就报错TypeError: cannot use a string pattern on a bytes-like object
3、正则的一些基本用法:
1)re.search(pattern, string, flags=0)
在字符串中查找,是否能匹配正则表达式。返回_sre.SRE_Match对象,如果不能匹配返回None。
2)re.match(pattern, string, flags=0)
字符串的开头是否能匹配正则表达式。返回_sre.SRE_Match对象,如果不能匹配返回None。
3)re.split(pattern, string, maxsplit=0)
通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。
4、其他的一些正则的用法总结:
1、正则表达式
2、Python之re模块 —— 正则表达式操作
3、Python正则式的基本用法
- 爬虫基础_01——正则
- 爬虫基础-- 正则基础
- 正则表达式基础——以Python爬虫为实例
- 正则表达式—网页爬虫
- 黑马程序员——JAVA基础之正则表达式,网络爬虫
- 黑马程序员——JAVA基础---正则表达式---概述,匹配、切割、替换、提取,网页爬虫
- 简单爬虫项目总结_01
- As 3.0 基础_01
- 计算机基础_01
- Swift 基础_01
- java基础总结_01
- C++基础_01
- Javascript基础_01基本概念
- javaweb基础_01
- JavaScript基础_01
- JQuery基础_01
- MyBatis基础_01
- Python爬虫入门——正则表达式
- Linux之redhat初学者基本指令教程(三)——vim教程
- nutch solr系列之(一)win7下安装nutch solr
- Spring框架IOC理解
- 每天一个linux命令(9):touch 命令
- Java -- 常见问题
- 爬虫基础_01——正则
- JSP自定义标签(三)自定义日期选择标签
- 进程和线程的区别和联系
- 最适合做特工的挑战者性格ESTP职业规划要素
- 博客搬家啦!!!
- Hadoop之——Hadoop 2.6.3动态增加/删除DataNode节点
- 解决mnist各种错误,优化提升
- 由C++类指针初始化引起的问题汇总
- TotalSort全排序(抽样取中值)