美文网首页
Python学习随笔

Python学习随笔

作者: Genshen | 来源:发表于2018-03-29 10:58 被阅读0次

本笔记整理自中谷教育在线教育视频

学习笔记——正则表达式常用符号

这里学习过正则表达式后,简单做了一个爬虫程序,效果为从某个网站上下载网站上的符合要求的图片。这里选取了百度贴吧中的某个壁纸网站:实验网站,目标是下载实验网站上面的壁纸图片。

实现代码

import re
import urllib

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getImg(html):
    reg = r'src="(.*?\.jpg)" width'
    imgre = re.compile(reg)
    imglist = re.findall(imgre, html)
    x = 0
    for imgurl in imglist:
        urllib.urlretrieve(imgurl,'%s.jpg' %x)
        x+=1

Html = getHtml("https://tieba.baidu.com/p/1112043392?pid=12757849991&cid=0&red_tag=0812006929#12757849991")  \\选取某百度贴吧网址
getImg(Html)

代码分析
首先,这里导入正则表达式模块re、网页爬虫模块urliib

import re
import urllib

定义两个函数,getHtml()和getImg(),作用分别为获得网页的源代码和得到图片。

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

getHtml()函数实现了从网站url上获取源代码。

def getImg(html):
    reg = r'src="(.*?\.jpg)" width'
    imgre = re.compile(reg)
    imglist = re.findall(imgre, html)
    x = 0
    for imgurl in imglist:
        urllib.urlretrieve(imgurl,'%s.jpg' %x)
        x+=1

getImg()函数实现了从源代码匹配图片的原网址代码,主要是正则的定义,分析过网站源代码后,发现图片原网址有以下共同特征:以'.jpg'结尾,网站前后有",在""之前有字符串'src=',之后有' width',于是,正则的定义可以如下:

reg = r'src="(.*?\.jpg)" width'

其中,reg = r'str'表示定义字符串str为正则;()表示只输出()内的字符串的内容,即在后面由re.findall()函数匹配后只输出图片源网站。这里的'.'表示任意字符,'*'表示取0到无限长,'?'表示进行最小匹配,防止在网站源代码内进行最大搜索,不能得到图片网址,这里第二个'.'前面加''表示这里的'.'是字符本身,而不是广泛的任意字符。
然后使用urllib.urlretrieve()实现图片的下载,命名。

urllib.urlretrieve(imgurl,'%s.jpg' %x)

几点问题

  • 这里进行图片下载时首先要保证图片网站是能够进入的,笔者在实现时就出现了报错状态,原因是匹配的图片网站本身就是不可进入的。
  • 匹配后可能会出现非要求的网址被匹配出来,这里就要求能够精确搜索条件,增加匹配的精度。

相关文章

  • Qtreewidget

    样例源码PyQt(Python+Qt)学习随笔:树型部件的QTreeWidget的itemAbove、itemBe...

  • python多线程的初步探索(从Queue探索)

    前言 自学了快4天的python。有些东西还是需要自己记录一下,故此写下该随笔。 在学习python的时候,编写多...

  • Python学习随笔

    本笔记整理自中谷教育在线教育视频 学习笔记——正则表达式常用符号 这里学习过正则表达式后,简单做了一个爬虫程序,效...

  • Python学习随笔

    这是我滴=第三次重新开始学习python,由于性格和自我约束力极差。导...

  • python学习随笔

    Python同其他语言一样,数据类型包括,整数,浮点数,字符串。 整数Python可以处理任意大小的整数,当然包括...

  • Python学习随笔

    断断续续自学了python也挺久了,都是学了忘,忘了学,在地铁上就想着找个地方记录下学的东西,免得以后又要从头学,...

  • python学习随笔

    记录一下循环和break,continue 循环中条件判断和中止/跳出一定要注意缩进 num = 0sum = 0...

  • python 总结

    python 随笔 关键字 基础 内建函数 技巧 模块 进阶

  • python学习笔记目录

    Python学习笔记目录(倒序) Python学习-异常 Python学习-面向对象 Python学习-文件系统 ...

  • python学习札记

    随笔记 python中,注释语句用【alt+3】,反注释用【alt+4】 python中的几个词汇ClassIns...

网友评论

      本文标题:Python学习随笔

      本文链接:https://www.haomeiwen.com/subject/xehpcftx.html