找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 9656|回复: 19

[已回复] 新手有关爬虫下载网页图片的问题

5

主题

21

帖子

21

积分

贫民

积分
21
Pythonquene 发表于 2016-7-17 11:41:24 | 显示全部楼层 |阅读模式
这是我写的代码。
我上网查了很多别人写的代码,对比了一下,还是不知道出现了什么问题。运行的时候,结果是[]。

  1. #coding=utf-8
  2. import re
  3. import urllib

  4. def getHtml(url):
  5.     page = urllib.urlopen(url)
  6.     html = page.read()
  7.     return html
  8.    
  9. def getlmg(html):
  10.     reg = r'src="(.+?)" height'
  11.     reimg = re.compile(reg)
  12.     imglist = re. findalK reimg, html)
  13.     return imglist
  14.    
  15. html = getHtml("http://cn.bing.com/academic/?F0RM=Z9LH2")
  16. print getlmg(html)
复制代码

屏幕快照 2016-07-17 上午11.29.02.png
屏幕快照 2016-07-17 上午11.29.45.png
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-17 17:51:34 | 显示全部楼层
兄弟,把大把发出来吧, 你贴图让我们怎么调试啊?

点评

#coding=utf-8 import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?)" height' reimg = re.compil   发表于 2016-7-18 22:04
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风 发表于 2016-7-17 20:46:21 | 显示全部楼层
我最近也在看python爬虫的资料,并且写了几个爬图的程序,你把代码贴出来或者加我QQ1055072354我们一起探讨下你遇到的问题,我根据你描述的情况,可能是你匹配图片下载链接的正则表达式没有匹配到下载链接的问题,你可以参考下

点评

#coding=utf-8 import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?)" height' reimg = re.compil   发表于 2016-7-18 22:03
回复 支持 反对

使用道具 举报

5

主题

165

帖子

165

积分

版主

Rank: 7Rank: 7Rank: 7

积分
165

热心会员突出贡献优秀版主荣誉管理

mongo 发表于 2016-7-18 12:53:40 | 显示全部楼层
运行过你的代码,写的没有问题,但是根据你提供的html,查看源码是没有找到 src="" height  这一匹配项的,

点评

但是 源码里面有这一项啊 为什么还是找不到呢 求解  发表于 2016-7-18 22:05
回复 支持 反对

使用道具 举报

5

主题

21

帖子

21

积分

贫民

积分
21
Pythonquene  楼主| 发表于 2016-7-18 22:03:07 | 显示全部楼层
blueelwang 发表于 2016-7-17 17:51
兄弟,把大把发出来吧, 你贴图让我们怎么调试啊?

#coding=utf-8

import re
import urllib

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getImg(html):
    reg = r'src="(.+?)" height'
    reimg = re.compile(reg)
    imglist = re.findall(reimg,html)
    return imglist   


html = getHtml("http://cn.bing.com/academic/?FORM=Z9LH2")
print getImg(html)
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-18 22:26:55 | 显示全部楼层
兄弟,你的这个地址里面确实匹配不到 src="xxx" height 的内容, 你可以查看网页源代码查找,不用使用fire debug 或者chrome的调试工具查看代码, 那种代码是浏览器渲染后的代码,并不是网页的真实代码。
回复 支持 反对

使用道具 举报

5

主题

165

帖子

165

积分

版主

Rank: 7Rank: 7Rank: 7

积分
165

热心会员突出贡献优秀版主荣誉管理

mongo 发表于 2016-7-19 09:52:18 | 显示全部楼层
mongo 发表于 2016-7-18 12:53
运行过你的代码,写的没有问题,但是根据你提供的html,查看源码是没有找到 src="" height  这一匹配项的, ...

阅读网页源码 ,搜索一下height=
回复 支持 反对

使用道具 举报

5

主题

21

帖子

21

积分

贫民

积分
21
Pythonquene  楼主| 发表于 2016-7-19 11:21:37 | 显示全部楼层
blueelwang 发表于 2016-7-18 22:26
兄弟,你的这个地址里面确实匹配不到 src="xxx" height 的内容, 你可以查看网页源代码查找,不用使用fire  ...

我刚刚去网页看了,果然不一样。上图是右键点击图片 显示细节。
而网页源代码文件是下图这样的:

如果是这样的源代码 那么找到图片表示的代码岂不是很麻烦?:)
回复 支持 反对

使用道具 举报

5

主题

101

帖子

101

积分

版主

Rank: 7Rank: 7Rank: 7

积分
101

最佳新人活跃会员热心会员突出贡献

QQ
落叶秋风 发表于 2016-7-19 11:26:11 | 显示全部楼层
代码运行起来没问题,但我发现一个小错误,就是那个imglist = re. findalK reimg, html)这句我换成findall了,楼主这句估计是笔误吧,然后我想问下楼主是想匹配图片链接呢还是别的什么,把问题描述的清楚一点,我好测试,给楼主找找问题看看
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-19 12:14:26 | 显示全部楼层
Pythonquene 发表于 2016-7-19 11:21
我刚刚去网页看了,果然不一样。上图是右键点击图片 显示细节。
而网页源代码文件是下图这样的:

看你具体的需求吧, 优化正则表达式即可
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表