python3.4爬虫demo

作者:chenqiangdage 时间:2023-10-24 21:46:24 

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

然后重启电脑。

来源:https://blog.csdn.net/chenqiangdage/article/details/51168231

标签:python,爬虫
0
投稿

猜你喜欢

  • CentOS 5.5使用yum来安装LAMP(php运行环境)

    2023-11-14 12:15:52
  • python通过tcp发送xml报文的方法

    2021-02-18 08:34:25
  • Python pip更新的两种方式详解

    2022-07-06 20:00:29
  • Python threading.local代码实例及原理解析

    2021-09-03 06:14:07
  • Python虚拟环境的创建和包下载过程分析

    2023-01-02 12:46:10
  • Tensorflow全局设置可见GPU编号操作

    2021-04-21 12:41:46
  • webpack构建的详细流程探底

    2024-04-10 10:38:39
  • django session完成状态保持的方法

    2021-12-07 16:12:02
  • 使用VSCode如何从github拉取项目的实现

    2023-02-02 10:32:35
  • Python对接支付宝支付自实现功能

    2023-09-19 13:57:51
  • python中的try except与R语言中的tryCatch异常解决

    2021-10-22 02:24:48
  • python 使用 requests 模块发送http请求 的方法

    2021-06-02 17:29:19
  • Python3中configparser模块读写ini文件并解析配置的用法详解

    2022-11-02 12:11:14
  • Python通过wordcloud库实现将单词生成词云

    2022-02-24 20:17:18
  • PyQt5使用mimeData实现拖拽事件教程示例解析下

    2021-02-15 11:09:03
  • 基于python实现学生管理系统

    2021-11-24 21:07:48
  • 详解Python发送email的三种方式

    2023-07-01 07:19:28
  • python 实现读取一个excel多个sheet表并合并的方法

    2023-06-25 20:11:51
  • Python PyQt5实战项目之网速监控器的实现

    2023-05-25 12:57:07
  • MySQL中将一列以逗号分隔的值行转列的实现

    2024-01-20 15:31:23
  • asp之家 网络编程 m.aspxhome.com