python 3.4 所写爬虫
仅仅是个demo,已百度图片首页图片为例。能跑出图片上的图片;
使用 eclipse pydev 编写:
from SpiderSimple.HtmLHelper import *
import imp
import sys
imp.reload(sys)
#sys.setdefaultencoding('utf-8')
html = getHtml('http://image.baidu.com/')
try:
getImage(html)
exit()
except Exception as e:
print(e) HtmlHelper.py文件
上面的 SpiderSimple是自定义的包名
from urllib.request import urlopen,urlretrieve
#正则库
import re
#打开网页
def getHtml(url):
page = urlopen(url)
html = page.read()
return html
#用正则爬里面的图片地址
def getImage(Html):
try:
#reg = r'src="(.+?\.jpg)" class'
#image = re.compile(reg)
image = re.compile(r'<img[^>]*src[=\"\']+([^\"\']*)[\"\'][^>]*>', re.I)
Html = Html.decode('utf-8')
imaglist = re.findall(image,Html)
x =0
for imagurl in imaglist:
#将图片一个个下载到项目所在文件夹
urlretrieve(imagurl, '%s.jpg' % x)
x+=1
except Exception as e:
print(e)要注意个大问题,python 默认编码的问题。
有可能报UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),错误。这个要设置python的默认编码为utf-8.
设置最好的方式是写bat文件,
echo off
set PYTHONIOENCODING=utf8
python -u %1
然后重启电脑。
项目地址:
git@code.csdn.net:chenqiangdage/python_spider_demo.git
拿去
这篇博客介绍了使用Python 3.4编写的一个简单爬虫示例,专注于抓取百度图片首页的图片。文章提到了可能遇到的UnicodeDecodeError问题,并给出了设置Python默认编码为utf-8的解决方法,包括创建bat文件来避免该错误。项目源代码托管在CSDN的git仓库中。
1298

被折叠的 条评论
为什么被折叠?



