我的目标只是获得原始链接,然后我便可以使用该链接下载图像。但随着链接的加入,我会得到一些额外的字符。 从bs4导入BeautifulSoup 导入请求
[<img src="https://2.bp.blogspot.com/-p72DilhF-_s/WRSF41vu50I/AAAAAAAAlsk/6BTxzQAzPkwteMgEHch2JFH0JKKpbKrZACHM/s16000/0137-001.png"/>]
我最终得到的是这样的:
https://2.bp.blogspot.com/-p72DilhF-_s/WRSF41vu50I/AAAAAAAAlsk/6BTxzQAzPkwteMgEHch2JFH0JKKpbKrZACHM/s16000/0137-001.png
我希望我能得到这样的东西:
flake8
答案 0 :(得分:1)
如果只想获取src
,则可以执行以下操作:
for p in pages:
y = [tag["src"] for tag in p.findAll("img")]
print(y)
它从每个img标签中获取URL,而不是获取整个标签。
此外,如果您使用的是bs4
或BeautifulSoup4
,请使用find_all
而不是findAll
。 findAll
是旧版本bs3
。
答案 1 :(得分:1)
我认为它将起作用:
>>> from bs4 import BeautifulSoup
>>> data = """<img src="https://2.bp.blogspot.com/-p72DilhF-_s/WRSF41vu50I/AAAAAAAAlsk/6BTxzQAzPkwteMgEHch2JFH0JKKpbKrZACHM/s16000/0137-001.png"/>"""
>>> soap = BeautifulSoup(data,"lxml")
>>> for i in soap.find_all("img"):
link = i.get("src")
print(link)
答案 2 :(得分:0)
另一种方法是使用XPath。我建议在这里使用lxml,因为Beautiful内没有XPath支持。这实际上是一个非常简单的解决方案:
from lxml import html
import requests
page = requests.get('https://readheroacademia.net/manga/boku-no-hero-academia-chapter-137/')
tree = html.fromstring(page.content)
#This will create a list of img src attributes beneth the `<div id="acp_content" class="acp_content">` tag:
srcs = tree.xpath('//div[@id="acp_content"]//img/@src')