Python实现简单爬虫(网站图片)

一、要获取到网站的源码,需要用到 urllib工具包,先import,调用urllib.request.uriopen(url)就可以打开网页并返回一个对象,调用read()方法即可获得网页的源码:

import urllib.request

url='http://huxi.cqu.edu.cn'
page = urllib.request.urlopen(url)#打开网页并返回一个对象
htmlcode = page.read()#直接获得网页的源代码
print (htmlcode)
pageFile = open ('pageCode.txt','w');
pageFile.write(str(htmlcode));
pageFile.close()

把它写入txt文件中,打开就可以看到网站源码了,和用浏览器邮件查看源码的结果是一样的:

因为我要爬的是网站上的图片,查看网页的源码,找到有图片的代码位置:

会发现有图片的位置的代码都是

 <img src="/static/upfiles/201903/temp/20190322170425328_288_214.jpg">

用正则表达式r''来匹配到这些句子,正则表达式的使用详情参考:http://www.runoob.com/regexp/regexp-syntax.html

再使用findall()来搜寻所有满足正则表达式的语句:

import urllib.request
import re
url = 'http://huxi.cqu.edu.cn'
def get_html(url):
    page = urllib.request.urlopen(url)  # 打开网页并返回一个对象
    htmlcode = page.read()  # 直接获得网页的源代码
    return htmlcode

reg=r'img src="(.+?\.jpg)"'
reg_img = re.compile(reg)#编译一下,运行更快
imglist = reg_img.findall(str(get_html(url)));
for img in imglist:
    print(img)

就找到了所有图片的名字链接,输出结果为:

接下来是把这些图片下载下来,进行重命名:

index=0
for img in imglist:
    urllib.request.urlretrieve(url+img, '%s.jpg' %index)
    index += 1

运行后的结果为:

是不是很简单呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值