经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
python3.4爬虫demo
来源:jb51  时间:2019/1/23 9:07:41  对本文有异议

python 3.4 所写爬虫

仅仅是个demo,以百度图片首页图片为例。能跑出图片上的图片;

使用 eclipse pydev 编写:

  1. from SpiderSimple.HtmLHelper import *
  2. import imp
  3. import sys
  4. imp.reload(sys)
  5. #sys.setdefaultencoding('utf-8')
  6. html = getHtml('http://image.baidu.com/')
  7. try:
  8. getImage(html)
  9. exit()
  10. except Exception as e:
  11. print(e)

HtmlHelper.py文件 

上面的 SpiderSimple是自定义的包名

  1. from urllib.request import urlopen,urlretrieve
  2. #正则库
  3. import re
  4. #打开网页
  5. def getHtml(url):
  6. page = urlopen(url)
  7. html = page.read()
  8. return html
  9. #用正则爬里面的图片地址
  10. def getImage(Html):
  11. try:
  12. #reg = r'src="(.+?\.jpg)" class'
  13. #image = re.compile(reg)
  14. image = re.compile(r'<img[^>]*src[=\"\']+([^\"\']*)[\"\'][^>]*>', re.I)
  15. Html = Html.decode('utf-8')
  16. imaglist = re.findall(image,Html)
  17. x =0
  18. for imagurl in imaglist:
  19. #将图片一个个下载到项目所在文件夹
  20. urlretrieve(imagurl, '%s.jpg' % x)
  21. x+=1
  22. except Exception as e:
  23. print(e)

要注意个大问题,python 默认编码的问题。

有可能报UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),错误。这个要设置python的默认编码为utf-8.

设置最好的方式是写bat文件,

  1. echo off
  2. set PYTHONIOENCODING=utf8
  3. python -u %1

然后重启电脑。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对w3xue的支持。如果你想了解更多相关内容请查看下面相关链接

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号