MB Story

MB Story | coder

0%

【爬虫初体验】从本地文本爬取下载图片

这是一个从指定文本中抓取url并下载图片的例子

基本思路
读取本地文件,然后用正则过滤到想要的imgurl,然后用requests.geturl中获取图片信息,最后将图片信息content写入文件,保存文件为图片格式。

遇到问题

  • import requests时候报错,提示不存在requests
    是因为本机没有安装.输入以下命令安装requests:

    1
    $ pip install requests

    安装完毕,重启IDE软件即可。
    (我用的IDEpycharm)

  • 命令行提示pip命令不存在怎么办?
    首先,确定本机python安装目录是否有

    1
    python2.x/script/pip.exe

    如果有,配置一下环境变量(环境变量/系统变量/Path)即可。

    1
    f:\python2.x/script;  #添加到Path变量中

操作流程:

  • 首先,打开任意网页,copy整个网页源码,保存到本地.txt文件中。
  • 然后,执行以下代码即可。

贴上源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#encoding:UTF-8
############################
## 这是一个从指定文本中抓取url并下载图片的例子
############################

import re
import requests

filename = "source.txt" #将网页源码copy到本文档
saveDir = 'C:\\Users\\Administrator\\Desktop\\downloadPic\\'
saveFileType = '.jpg'

# 读取网页源码
f = open(filename,'r')
source = f.read()
f.close()

# 正则提取图url
pic_url = re.findall('img src="(.*?)"',source,re.S) #看不懂什么规则 ORZ


# 下载图片并保存到本地
count = 0 #计数
for url in pic_url:
print 'downloading: ' + url
pic = requests.get(url) #获取url资源

# 保存为图片文件
fb = open(saveDir + str(count) + saveFileType,'wb')
fb.write(pic.content)
fb.close()
count += 1