首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我们查询img标记的源时,BeautifulSoup没有返回url

在使用BeautifulSoup解析HTML并提取<img>标签的src属性时,如果没有返回URL,可能是由于以下几个原因:

基础概念

  • BeautifulSoup:一个Python库,用于从HTML和XML文件中提取数据。
  • HTML:超文本标记语言,用于创建网页的标准标记语言。
  • <img>标签:HTML中用于嵌入图像的标签,其src属性指定图像的URL。

可能的原因及解决方法

  1. HTML解析问题
    • 原因:BeautifulSoup可能没有正确解析HTML文档。
    • 解决方法:确保使用正确的解析器,例如html.parserlxml
    • 解决方法:确保使用正确的解析器,例如html.parserlxml
  • 相对路径问题
    • 原因src属性可能是相对路径而不是绝对路径。
    • 解决方法:使用urljoin函数将相对路径转换为绝对路径。
    • 解决方法:使用urljoin函数将相对路径转换为绝对路径。
  • 标签属性缺失
    • 原因:某些<img>标签可能没有src属性。
    • 解决方法:检查并处理缺失src属性的情况。
    • 解决方法:检查并处理缺失src属性的情况。
  • 编码问题
    • 原因:HTML文档的编码可能不正确,导致解析失败。
    • 解决方法:确保HTML文档的编码正确,可以在解析前指定编码。
    • 解决方法:确保HTML文档的编码正确,可以在解析前指定编码。

应用场景

  • 网页抓取:从网页中提取图像链接,用于图像下载、分析等。
  • 内容管理系统:自动提取和显示网页中的图像。
  • 数据挖掘:从大量网页中提取图像数据,进行图像分析和处理。

参考链接

通过以上方法,您应该能够解决BeautifulSoup没有返回<img>标签src属性的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)!

BeautifulSoup 是对整个文档树引用,或是进入文档树入口对象。 分析 BeautifulSoup 构造方法,可发现在构造 BeautifulSoup 对象,可以传递很多参数。...img_tag = bs.img # 返回是 BS4 树上第一个 img Tag 对象 print(type(img_tag)) print(img_tag) ''' 输出结果 <class 'bs4...如上所述,使用 bs.标签名 返回是整个页面代码段中第一个同名标签对象。...# 在整个树结果中查询 class 属性值是 pl2 标签对象 div_tag = bs.find(attrs={"class": "pl2"}) Tip: 使用此属性,可以结合 name 参数把范围收窄...recursive 参数: 是否递归查询节点下面的子节点,默认 是 True ,设置 False ,只查询直接子节点。 简单介绍过滤方法后,重新回到问题上来,查询第一部电影电影名、简介。

1.2K10

小白爬虫之爬虫快跑,多进程和多线程

我们来给每个URL设置两种状态: outstanding:等待爬取URL complete:爬取完成URL 诶!等等我们好像忘了啥? 失败URL怎么办啊?...一个所有初始URL状态都为outstanding;开始爬取时候状态改为:processing;爬取完成状态改为:complete;失败URL重置状态为:outstanding。...为了能够处理URL进程被终止情况、我们设置一个计时参数,超过这个值我们则将状态重置为outstanding。 下面开整Go Go Go!...def pop(self): """ 这个函数会查询队列中所有状态为OUTSTANDING值, 更改状态,(query后面是查询)(update后面是更新) 并返回_id(就是我们URL),MongDB...() print(url) except KeyError: print('队列没有数据') break else: img_urls = [] req = request.get(url, 3).text

71370
  • 【Python爬虫实战】——爬取今日头条美女图片

    笔者是头条深度使用者,经常用头条完成“看片”大业。若不信的话可以试试在头条搜索街拍,返回都是一道道靓丽风景线。 想把图片存下来,该怎么办呢?我们可以用Python爬虫啊。...1、工具 Python3.5,Sublime Text,Windows 7 2、分析(第三步有完整代码) 可以看到搜索结果默认返回了 20 篇文章,页面滚动到底部头条通过 ajax 加载更多文章,浏览器按下...解析网页,通过 find 方法找到 article-main 对应 div 块,在该 div 块下继续使用 find_all 方法搜寻全部 img 标签,并提取其 src 属性对应值,于是我们便获得了该文章下全部图片...()) 基本步骤就是这么多了,整理下爬取流程: 指定查询参数,向 http://www.toutiao.com/search_content/ 提交我们查询请求。...再分别向这些图片链接发送请求,将返回图片输入保存到本地(E:\jiepai)。 修改查询参数,以使服务器返回文章数据,继续第一步。

    3.7K100

    Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取

    url以'#'结束,你就知道结束循环了。 你将把图像文件下载到当前工作目录下名为xkcd文件夹中。...一些 XKCD 页面有特殊内容,不是简单图像文件。那也行;你可以跳过这些。如果您选择器没有找到任何元素,那么soup.select('#comic img')将返回一个空白列表。...发生这种情况,程序可以打印一条错误信息,然后继续运行,而不下载图像。 否则,选择器将返回一个包含一个元素列表。...如果没有找到这样元素,我们打印一条不同消息。 该程序将输出以下内容: Found element with that class name!...我们找到了一个类名为'bookcover'标签名为'img'元素。

    8.7K70

    小白爬虫之爬虫快跑

    我们来给每个URL设置两种状态: outstanding:等待爬取URL complete:爬取完成URL 诶!等等我们好像忘了啥?失败URL怎么办啊?...一个所有初始URL状态都为outstanding;开始爬取时候状态改为:processing;爬取完成状态改为:complete;失败URL重置状态为:outstanding。...为了能够处理URL进程被终止情况、我们设置一个计时参数,超过这个值我们则将状态重置为outstanding。 下面开整Go Go Go!...值, 更改状态,(query后面是查询)(update后面是更新) 并返回_id(就是我们URL),MongDB好使吧,^_^ 如果没有OUTSTANDING值则调用repair()函数重置所有超时状态为...=url+'/'+str(page) img_url=BeautifulSoup(request.get(page_url,3).text,'lxml').find('div',class_='main-image

    1.2K80

    Python批量下载XKCD漫画只需20行命令!

    第一张漫画Prev按钮链接到后缀为# URLXKCD网址,表明没有前一个页面了。...网址 url = 'https://xkcd.com' # starting url 代码片段:Python 这里设置 url 变量(url 是通过http协议存取资源一个路径,它就像我们电脑里面的一个文件路径一样...如果选择器没有找到任何元素,那么soup.select('#comic img') 将返回一 个空列表。出现这种情况,程序将输出一条错误信息,不下载图像,并继续执行。...否则,选择器将返回一个包含一个 元素列表。可以从这个 元素中取得 src 属性,将src传递给requests.get() ,以下载这个漫画图像文件。...实际上,调用os. path. basename() 传入 comicUrl ,它只返回URL最后部分 ' heartbleed_ explanation. png ' ,将图像保存到硬盘,你可以用它作为文件名

    1K10

    使用Python抓取欧洲足球联赛数据

    = result + get_players(url) 我们来看看抓取球员数据详细过程: 首先我们定义了一个get_players方法,该方法会返回某一请求页面上所有球员数据。...所以用item.img['src']可以获得item子元素imgsrc属性。 对已包含链接情况,我们通过urlparse来获取查询url参数。...这里我们利用了dict comprehension查询参数放入一个dict中,然后添加到列表中。...dict([(k,v[0]) for k,v in urlparse.parse_qs(o).items()]) 对于其它情况,我们使用Python and or表达式以确保Tag内容为空我们写入...因为我们使用utf-8编码方式. 好了现在大功告成,抓取csv如下图: ? 因为之前我们还抓取了球员本赛季比赛详情,所以我们可以进一步抓取所有球员每一场比赛记录 ?

    2.7K80

    疫情在家能get什么新技能?

    能实现爬虫语言有很多,像Java、PHP、Python、C#...都可以用各种方式达到你要求,那为什么要用python呢? 人生苦短,python歌!...总结一下,HTML是一种用于创建网页标记语言,里面嵌入了文本、图像等数据,可以被浏览器读取,并渲染成我们看到网页样子。 所以我们才会从先爬取HTML,再 解析数据,因为数据藏在HTML里。...两个标签之间为元素内容(文本、图像等),有些标签没有内容,为空元素,如。 以下是一个经典Hello World[46]程序例子: <!...第一步先获取该网页所有图片标签和url,这个可以使用BeautifulSoupfindAll方法,它可以提取包含在标签里信息。...一般来说,HTML里所有图片信息会在“img”标签里,所以我们通过findAll("img")就可以获取到所有图片信息。

    1.6K30

    王者荣耀五周年,带你入门Python爬虫基础操作(102个英雄+326款皮肤)

    1.概述 《王者荣耀》上线至今5个年头了,作为这些年国内最热门手游(没有之一),除了带来游戏娱乐之外,我们在这五周年之际,试着从他们官网找点乐趣,学习一下Python爬虫一些简单基础操作。...2.2.json数据 对于局内道具列表数据,我们发现上述方案无法获取,那么这种情况下我们可以选择开发者模式中「Network——>XHR」,然后刷新页面,在name里找啊找,一般就能到了某个数据是我们需要...点「Preview」发现里面正是我们需要数据,然后在「Headers」里可以找到请求到该数据真实链接地址,这里数据请求方式为「get」,我们下一节会介绍。 ?.../a/img/@src')[0] herolists.append(herolist) 4.2.json数据解析 在请求数据是json格式,直接查看数据类型发现是str,如下: ?...6.3.王者英雄产能 2015年10月28日王者首发,有33个英雄,大家熟悉亚瑟、项羽、安琪拉等都是第一批。截止到现在,5年间内新增英雄69个。

    1.1K20

    使用Python抓取欧洲足球联赛数据

    = result + get_players(url) 我们来看看抓取球员数据详细过程: 首先我们定义了一个get_players方法,该方法会返回某一请求页面上所有球员数据。...所以用item.img['src']可以获得item子元素imgsrc属性。 对已包含链接情况,我们通过urlparse来获取查询url参数。...这里我们利用了dict comprehension查询参数放入一个dict中,然后添加到列表中。...dict([(k,v[0]) for k,v in urlparse.parse_qs(o).items()]) 对于其它情况,我们使用Python and or表达式以确保Tag内容为空我们写入...因为我们使用utf-8编码方式,在csv文件头,需要写入\xEF\xBB\xBF,详见这篇文章 好了现在大功告成,抓取csv如下图: ?

    3.6K50

    小白如何入门Python爬虫

    总结一下,HTML是一种用于创建网页标记语言,里面嵌入了文本、图像等数据,可以被浏览器读取,并渲染成我们看到网页样子。 所以我们才会从先爬取HTML,再 解析数据,因为数据藏在HTML里。...两个标签之间为元素内容(文本、图像等),有些标签没有内容,为空元素,如。 以下是一个经典Hello World程序例子: <!...第一步先获取该网页所有图片标签和url,这个可以使用BeautifulSoupfindAll方法,它可以提取包含在标签里信息。...一般来说,HTML里所有图片信息会在“img”标签里,所以我们通过findAll("img")就可以获取到所有图片信息了。...# 只提取logo图片信息 logo_pic_info = obj.find_all('img',class_="index-logo-src") # 提取logo图片链接 logo_url =

    1.8K10

    Python 小爬虫 - 爬取今日头条街拍美女图

    可以看到搜索结果默认返回了 20 篇文章,页面滚动到底部头条通过 ajax 加载更多文章,浏览器按下 F12 打开调试工具(我是 Chrome),点击 Network 选项,尝试加载更多文章,可以看到相关...;_ 应该是请求发起时间戳。...这里我们请求文章 URL,将返回内容(html)传递给 BeautifulSoup我们做解析。...基本步骤就是这么多了,整理下爬取流程: 指定查询参数,向 http://www.toutiao.com/search_content/ 提交我们查询请求。...再分别向这些图片链接发送请求,将返回图片输入保存到本地。 修改查询参数,以使服务器返回文章数据,继续第一步。

    1.5K50

    21.8 Python 使用BeautifulSoup

    BeautifulSoup库用于从HTML或XML文件中提取数据。它可以自动将复杂HTML文档转换为树形结构,并提供简单方法来搜索文档中节点,使得我们可以轻松地遍历和修改HTML文档内容。..."attribute" ) print(ref) 代码运行后即可输出lyshark网站中主页所有的文章地址信息,输出如下图所示; 需要定位文章内容...,如下图所示; 21.8.2 查询所有标签 使用find_all函数,可实现从HTML或XML文档中查找所有符合指定标签和属性元素,返回一个列表,该函数从用于精确过滤,可同时将该页中符合条件数据一次性全部筛选出来...text:字符串或正则表达式,用于匹配元素文本内容 limit:整数,限制返回匹配元素数量 kwargs:可变参数,用于查找指定属性名和属性值元素 我们以输出CVE漏洞列表为例,通过使用find_all...查询页面中所有的a标签,并返回一个列表,通过对列表元素解析,依次输出该漏洞序号,网址,以及所对应编号信息。

    27060

    挑战30天学完Python:Day22 爬虫python数据抓取

    为了收集这些数据,我们需要知道如何从一个网站抓取这些数据。 网络抓取本质上是从网站中提取和收集数据,并将其存储在本地机器或数据库中过程。 在本节中,我们将使用 beautifulsoup 和?...pip install requests pip install beautifulsoup4 要从网站抓取数据,需要对HTML标记和CSS选择器有基本了解。...import requests from bs4 import BeautifulSoup url = 'http://wap.sina.cn/' # 让我们使用网络请求url,获取返回数据 response...= requests.get(url) # 检查返回状态,200表示正常 status = response.status_code print(status) 200 使用 beautifulSoup...def move_top(): url = 'https://movie.douban.com/chart' # 这里需要增加header模拟是浏览器请求,否者会没有内容返回

    31730

    Python带你看不一样《青春有你2》小姐姐之爬取参赛学员信息

    获取响应数据(服务器返回) 3. 解析并提取数据(BeautifulSoup查找或者re正则) 4..../ 2. requests.get(url)可以发送一个http get请求,返回服务器响应内容。...,并保存为JSON文件 我们把上面爬取table进行解析,保存为JSON文件,需要注意一点是获取公司名,方法会不一样,有的公司名字是有超链接,会使用a标签, 没有超链接就没有a标签。...,有超链接会用到a标签,没有超链接没有a标签,所以要做一下区分 if not all_tds[6].find('a') is None: star["company...构造方法,就能得到一个文档对象, 可以传入一段字符串 soup = BeautifulSoup(response.text, 'lxml') # 返回是class

    2K20

    开车啦!小爬虫抓取今日头条街拍美女图

    可以看到搜索结果默认返回了 20 篇文章,页面滚动到底部头条通过 ajax 加载更多文章,浏览器按下 F12 打开调试工具(我是 Chrome),点击 Network 选项,尝试加载更多文章,可以看到相关...;count 为请求新文章数量;_ 应该是请求发起时间戳。...URL,将返回内容(html)传递给 BeautifulSoup我们做解析。...基本步骤就是这么多了,整理下爬取流程: 指定查询参数,向 http://www.toutiao.com/search_content/ 提交我们查询请求。...再分别向这些图片链接发送请求,将返回图片输入保存到本地。 修改查询参数,以使服务器返回文章数据,继续第一步。

    1.7K50

    『Python开发实战菜鸟教程』实战篇:爬虫快速入门——统计分析CSDN与博客园博客阅读数据

    正式进入爬虫实战前,需要我们了解下网页结构 网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)。...网页请求方式也分为两种: GET:最常见方式,一般用于获取或者查询资源信息,也是大多数网站使用方式,响应速度快。...这里将解析后文档存储到新建变量 soup 中,代码如下: soup=BeautifulSoup(strhtml.text,'lxml') 接下来用 select(选择器)定位数据,定位数据需要使用浏览器开发者模式...page=2" #页面为第一页,无法显示总页数,所以选择访问第二页 htxt = requests.get(url) soup=BeautifulSoup(htxt.text,'lxml') data...page=2" #页面为第一页,无法显示总页数,所以选择访问第二页 htxt = requests.get(url) soup=BeautifulSoup(htxt.text,'lxml') data

    1.3K30
    领券