Python--正则表达式/单线程网络爬虫
来源:互联网 发布:可靠性工程师 知乎 编辑:程序博客网 时间:2024/06/11 12:12
正则表达式
- 常用符号:点号,星号,问号与括号
- 常用方法:findall,search,sub
常用技巧:
常用符号
. :匹配任意字符,换行符\n除外
* :匹配前一个字符0次或无限次
? :匹配前一个字符0次或1次
.* :贪心算法
.*? :非贪心算法
() :括号内的数据会作为结果返回常用方法
findall:匹配所有符合规律的内容(遍历所有文本),返回包括结果的列表
search:匹配并提取第一个符合规律的内容(遍历到一个即可),返回一个正则表达式的对象
sub:替换符合规律的内容,返回替换后的值
#sub的使用举例s = '123rrrrr123'output = re.sub('123(.*?)123','123%d123'%789,s)print output输出: 123789123
####常用技巧
- import re
- from re import*
- from re import findall,search,sub,S
- 使用\d+匹配纯数字
#匹配数字a = 'asdfasf1234567fasd555fas'b = re.findall('(\d+)',a)print b输出:['1234567', '555']
正则表达式应用
-另需要通过 pip 安装 requests 模块,不然无法使用requests方法!
#-*-coding:utf8-*-import reimport requests#读取源代码文件f = open('source.txt','r')#打开一个TXT文本html = f.read()#将读取的文本赋给变量htmlf.close()#关闭文本#匹配图片网址pic_url = re.findall('img src="(.*?)" class="lessonimg"',html,re.S)i = 0for each in pic_url:#打开文件操作,写文件流程 print 'now downloading:' + each pic = requests.get(each) fp = open('pic\\' + str(i) + '.jpg','wb')#将图片保存至本地目录“pic”文件夹,并添加名字与后缀 fp.write(pic.content) fp.close() i += 1
正则表达式与单线程网络爬虫应用
-自动下载的图片为程序员光棍节福利!
#-*—coding:utf8-*-import requestsimport re#下面三行是编码转换的功能,大家现在不用关心。import sysreload(sys)sys.setdefaultencoding("utf-8")hea = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0'}si = 0for i in range(2180,2206): my_url = 'http://jandan.net/ooxx/page-2205#comments' url = re.sub('page-(.*?)#comments','page-%d#comments'%i,my_url) html = requests.get(url,headers = hea) html.encoding = 'utf-8' #这一行是将编码转为utf-8否则中文会显示乱码。 target = re.findall('<br /><img src="(.*?)" /></p>',html.text) for each in target: print each print 'now downloading:' + each pic = requests.get(each) fp = open('pic\\' + str(si) + '.jpg', 'wb') fp.write(pic.content) fp.close() si += 1
0 0
- Python--正则表达式/单线程网络爬虫
- 第一个Python单线程爬虫(使用正则表达式)
- python单线程网络爬虫
- Python网络爬虫-正则表达式
- Python 网络爬虫单线程版
- Python网络爬虫(3)正则表达式
- python网络爬虫-正则表达式和BeautifulSoup
- python之正则表达式以及网络爬虫
- 网络爬虫-正则表达式
- python-单线程爬虫
- Python爬虫 正则表达式
- Python爬虫-正则表达式
- python爬虫-正则表达式
- [Python]网络爬虫(七):Python中的正则表达式教程
- [Python]网络爬虫:Python中的正则表达式教程
- [Python]网络爬虫(七):Python中的正则表达式教程
- [Python]网络爬虫(七):Python中的正则表达式教程
- [Python]网络爬虫(七):Python中的正则表达式教程
- iOS searchBar底部黑线
- 工业设计师
- 第10周项目2-二叉树遍历的递归算法
- Android网络访问
- 第十一周项目1——二叉树算法验证(3) 中序线索化二叉树的算法验证
- Python--正则表达式/单线程网络爬虫
- ionic之app.js中的路由配置关系和导航居底部的解决方案
- Redis学习笔记
- Devik进程、Linux进程和线程
- 【DAY.1】PHP如何得到数组最后元素的key?
- C#抽象类
- 第十一周--二叉树构造算法的验证【先中】
- Spark Checkpoint写操作代码分析
- 14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器