第一个爬虫小程序,从网络上学习的。
实现了给定链接,爬取上面的图片
#!/usr/bin/python
#coding:utf-8
import urllib
import re
# page = urllib.urlopen('http://tieba.baidu.com/p/1753935195')#打开网页
# htmlcode = page.read()#读取页面源码
# print htmlcode#在控制台输出
# pageFile = open('pageCode.txt','w')#以写的方式打开pageCode.txt
# pageFile.write(htmlcode)#写入
# pageFile.close()#开了记得关
def get_html(url):
page = urllib.urlopen(url)
html = page.read()
return html
reg = r'src="(.+?\.jpg)" width'#正则表达式
reg_img = re.compile(reg)#编译一下,运行更快
imglist = reg_img.findall(get_html('http://tieba.baidu.com/p/1753935195'))
x = 0
for img in imglist:
# print img
urllib.urlretrieve(img,'tieba%s.jpg' %x)
x += 1
代码如上,需要注意的是:
1.AttributeError: module 'urllib' has no attribute 'urlopen'
遇到这个错误的原因是 我在python3.7环境下运行没有找到对应的方法,应该在2.7环境下运行
2.python有严格的缩进规则,新手在这遇到了问题
小知识点:
1.urllib中有 urllib.urlopen(str) 方法用于打开网页并返回一个对象,调用这个对象的read()方法后能直接获得网页的源代码,内容与浏览器右键查看源码的内容一样 Python3.X中应该用urllib.request
2.python中的re库中的 re.findall(str) 它返回一个满足匹配的字符串组成的列表
3.urllib库中有一个 urllib.urlretrieve(链接,名字) 方法,它的作用是以第二个参数为名字下载链接中的内容