鱼C论坛

 找回密码
 立即注册
查看: 2275|回复: 6

[已解决]爬取贴吧图片地址失败

[复制链接]
发表于 2020-1-6 18:57:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下是我写的代码

import re

import urllib.request as ur

url='http://tieba.baidu.com/p/1753935195'
#打开网页
def open_url(url):
    req=ur.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')
    a=ur.urlopen(req)
    html=a.read().decode('utf-8')
    return html
#获得图片地址
def get_img(html):
    img=r'"BDE_Image" src="([^"]+\.jpg)'
    imglist=re.findall(img,html)
    for i in imglist:
        if i:
            yield print(i)
        else:
            continue
if __name__=='__main__':
    url='https://tieba.baidu.com/p/1753935195'
    get_img(open_url)


程序可以运行 但是不显示任何东西   .
想测试看看获取图片地址。
顺便问一下 下面这个地址从哪儿查看的  实不相瞒 这是我复制另外一个 大佬的代码地址  开始以为是自己地址错了  但是用这个地址还是不行
url='https://tieba.baidu.com/p/1753935195'
求大佬们相助  
!!!!!
万分感谢
最佳答案
2020-1-6 19:55:02
本帖最后由 lixiangyv 于 2020-1-6 19:57 编辑

然后在这行 : yield print(i)
不可以使用 yield , 要把 yield 删掉,他后面不能是函数!

这样在我的机子上是木有任何错误了。
正常打打印了:
Screenshot_1.png

正确源代码:
  1. import re

  2. import urllib.request as ur

  3. url='http://tieba.baidu.com/p/1753935195'
  4. #打开网页
  5. def open_url(url):
  6.     req=ur.Request(url)
  7.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')
  8.     a=ur.urlopen(req)
  9.     html=a.read().decode('utf-8')
  10.     return html
  11. #获得图片地址
  12. def get_img(html):
  13.     img=r'"BDE_Image" src="([^"]+\.jpg)'
  14.     imglist=re.findall(img,html)
  15.     for i in imglist:
  16.         if i:
  17.             print(i)
  18.         else:
  19.             continue
  20. if __name__=='__main__':
  21.     url='https://tieba.baidu.com/p/1753935195'
  22.     get_img(open_url(url))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-6 19:45:23 | 显示全部楼层
这一行有错误:
    get_img(open_url)
你没传入参数,应该写成:get_img(open_url(url))

但这还是不行......

一会查到再说......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-1-6 19:55:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lixiangyv 于 2020-1-6 19:57 编辑

然后在这行 : yield print(i)
不可以使用 yield , 要把 yield 删掉,他后面不能是函数!

这样在我的机子上是木有任何错误了。
正常打打印了:
Screenshot_1.png

正确源代码:
  1. import re

  2. import urllib.request as ur

  3. url='http://tieba.baidu.com/p/1753935195'
  4. #打开网页
  5. def open_url(url):
  6.     req=ur.Request(url)
  7.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')
  8.     a=ur.urlopen(req)
  9.     html=a.read().decode('utf-8')
  10.     return html
  11. #获得图片地址
  12. def get_img(html):
  13.     img=r'"BDE_Image" src="([^"]+\.jpg)'
  14.     imglist=re.findall(img,html)
  15.     for i in imglist:
  16.         if i:
  17.             print(i)
  18.         else:
  19.             continue
  20. if __name__=='__main__':
  21.     url='https://tieba.baidu.com/p/1753935195'
  22.     get_img(open_url(url))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-6 21:21:44 | 显示全部楼层
代码有些小问题,帮楼主改好了:

  1. import re
  2. import urllib.request as ur

  3. url = 'http://tieba.baidu.com/p/1753935195'
  4. # 打开网页
  5. def open_url(url):
  6.     req = ur.Request(url)
  7.     req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')
  8.     a=ur.urlopen(req)
  9.     html=a.read().decode('utf-8')
  10.     return html
  11. # 获得图片地址
  12. def get_img(html):
  13.     img=r'"BDE_Image" src="([^"]+\.jpg)'
  14.     imglist=re.findall(img, html)
  15.     for i in imglist:
  16.         if i:
  17.             print(i)
  18.         else:
  19.             continue
  20. if __name__=='__main__':
  21.     url='https://tieba.baidu.com/p/1753935195'
  22.     get_img(open_url(url))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-7 17:26:10 | 显示全部楼层
lixiangyv 发表于 2020-1-6 19:55
然后在这行 : yield print(i)
不可以使用 yield , 要把 yield 删掉,他后面不能是函数!

感谢大佬 !!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-7 17:27:46 | 显示全部楼层
zltzlt 发表于 2020-1-6 21:21
代码有些小问题,帮楼主改好了:

感谢大佬谢谢!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-7 17:30:11 | 显示全部楼层
顺便问下大佬 我这个url地址  从哪儿查找 就是这个url='https://tieba.baidu.com/p/1753935195'  实不相瞒这是复制的  。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-6 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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