【发布时间】:2018-10-05 11:15:33
【问题描述】:
我正在尝试使用 beautifulsoup 来获取具有特定类别的网站的所有图像。我的问题是,当我运行代码只是为了查看我的代码是否可以找到每个图像时,它只会获得图像 1-5。我认为问题在于 html,因为图像 6-end 位于嵌套的 div 中,但 Find_all 应该能够找到具有同一类的所有 img。
import requests, os, bs4, sys, webbrowser
url = 'https://mangapanda.onl/chapter/'
os.makedirs('manga', exist_ok=True)
comic = sys.argv[1:]
aComic = '-'.join(sys.argv[1:])
issue = input('which issue do you want?')
aIssue = ('/chapter-' + issue)
aComic = (aComic + '_110' + aIssue)
comicUrl = (url + aComic)
res = requests.get(comicUrl)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
comicElem = soup.find_all(class_="PB0mN")
if comicElem == []:
print('nothing in the list')
else:
print('There are ' + str(len(comicElem)) + ' on this page')
for i in range(len(comicElem)):
comicPage = comicElem[i].get('src')
print(str(comicPage) + '\n')
在使用可以帮助我解决这个问题的美丽汤时,我是否遗漏了什么?是导致此问题的html吗?有没有更好的方法我可以自己诊断这个问题,这本来是在我的能力范围内的(旁注:我目前正在阅读“用 Python 自动化无聊的东西”一书。这是我得到这个想法的地方迷你项目和我对python技能水平的一个不错的想法。最后我正在使用BeautifulSoup来了解更多信息。如果可能的话,我想使用BeautifulSoup解决这个问题,如果我需要,我会研究通过html解析的其他选项.
使用 Firefox quantim 59.0.2 使用python3
PS,如果您知道可能已经回答了这个问题的其他问题,请随时将我链接到它。我真的很想通过其他人的问题找出答案,但似乎我的问题非常独特。
【问题讨论】:
-
你应该看看你的 soup.prettify() 并看看那些其他图像源是否可见。我现在正在查看来自您链接的网站的漫画的来源,似乎只有问题 1 到 5 可见。它们有一个简单的命名方案,因此可以解决。但是你应该先看看你的汤是否能看到图像,如果需要的话,在这里发布soup.prettify()。
-
为了澄清打印 soup.prettify() 将为您提供您尝试解析的 HTML 的更清晰版本,以便您可以看到正在使用的内容。
标签: python html web-scraping beautifulsoup html-parsing