当前位置: 首页 > 面试题库 >

BeautifulSoup HTML获取src链接

通奕
2023-03-14
问题内容

我正在使用python
3.5.1和request模块制作一个小型网络爬虫,该模块从特定网站下载所有漫画。我正在尝试一页。我使用BeautifulSoup4解析页面,如下所示:

import webbrowser
import sys
import requests
import re
import bs4

res = requests.get('http://mangapark.me/manga/berserk/s5/c342')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')

for link in soup.find_all("a", class_ = "img-link"):
    if(link):
        print(link)
    else:
        print('ERROR')

当我这样做时,我会print(link)感兴趣的是正确的HTML部分,但是当我尝试仅使用 src 来获取 src中
的链接时,link.get('src')它只会打印None

我尝试使用以下方式获取链接:

img = soup.find("img")["src"]

没关系,但是我想拥有所有的src链接,而不是第一个链接。我对beautifulSoup经验很少。请指出发生了什么事。谢谢。

我感兴趣的网站的示例HTML部分是:

<a class="img-link" href="#img2">
    <img id="img-1" class="img"
          rel="1" i="1" e="0" z="1" 
          title="Berserk ch.342 page 1" src="http://2.p.mpcdn.net/352582/687224/1.jpg"
          width="960" _width="818" _heighth="1189"/>        
</a>

问题答案:

我会使用CSS选择器一次性完成此操作:

for img in soup.select("a.img-link img[src]"):
    print(img["src"])

在这里,我们得到的所有img具有src属性的元素都位于a具有img-link类的元素下。它打印:

http://2.p.mpcdn.net/352582/687224/1.jpg
http://2.p.mpcdn.net/352582/687224/2.jpg
http://2.p.mpcdn.net/352582/687224/3.jpg
http://2.p.mpcdn.net/352582/687224/4.jpg
...
http://2.p.mpcdn.net/352582/687224/20.jpg

如果仍要使用find_all(),则必须将其嵌套:

for link in soup.find_all("a", class_ = "img-link"):
    for img in link.find_all("a", src=True):  # searching for img with src attribute
        print(img["src"])


 类似资料:
  • 我希望当我点击按钮时,我可以得到具体的img src,并在div classblock中显示img src。 HTML CSS JS 但是现在我面临的问题是获取img src。 所以我使用alert进行测试,结果是它什么都没有。

  • 问题内容: 在此示例中,我想将SRC属性转换为变量: 因此,例如-我想要一个变量。重要!src属性将是 dynamic ,因此不能进行硬编码。有什么快速简便的方法可以做到这一点吗? 谢谢! 编辑:图像将是一个巨大的字符串的一部分,基本上是新闻故事的内容。因此,图像只是其中的一部分。 EDIT2:此字符串中将有更多图像,我只想获取第一个的src。这可能吗? 问题答案: 使用类似的HTML解析器,然后

  • 问题内容: 我获得了这段代码,以便从www.youtube.com/watch?v=xxxxxxx之类的链接获取youtube ID 基本上这将使我轻松获得id v = xxxxxxxx 但我注意到有时youtube链接会像这样 我正在从提要中获取链接,所以我需要为此构建一个正则表达式,还是需要一个解析器来为我获取它? 问题答案: 尝试了其他方法,但在我的情况下失败了-调整了正则表达式以适合我的网

  • cmf_get_file_download_url($file, $expires = 3600) 功能 获取文件下载链接 参数 $file: string 文件路径,数据库里保存的相对路径 $expires: int 过期时间,单位 s 返回 string 文件链接

  • X2.2.0新增 sp_get_file_download_url($file,$expires=3600) 功能: 获取文件下载链接 参数: $file: 数据库保存的文件路径 $expires:文件过期时间(七牛) 返回: 类型string,文件下载链接 使用: $url = sp_get_file_download_url('portal/23232.png');

  • 我想用scrapy来获取IMG的链接,所以我在scrapy的爬行器中编写了以下程序: 然而,这是不管用的。有什么问题吗?

  • 我有一个使用< code>jwt进行身份验证的< code>api。我正在为一个< code>vuejs应用程序使用这个api。我试图在应用程序中显示图像,使用 但是需要header,其中包含 。 我可以像这样在浏览器请求中添加标题吗(这里回答的几个问题让我相信这是不可能的)? 有没有办法(使用js)或者我应该改变<code>api</code>本身?