我如何才能从html页面中找到美丽汤的每个链接作为一个字符串?(这个网站的findAll功能不好找)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何才能从html页面中找到美丽汤的每个链接作为一个字符串?(这个网站的findAll功能不好找)相关的知识,希望对你有一定的参考价值。
我想添加所有Dota2英雄的名字;他们以链接的形式出现,从 https:/dota2.gamepedia.comAbaddonCounters。 成一个列表。
这是我的测试代码。
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
my_url = 'https://dota2.gamepedia.com/Abaddon/Counters'
print(Child_url+hero_link_list[0])
uClient = uReq(my_url)
page_html = uClient.read()
page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("div", "class": "mw-parser-output")
print(containers)
但是,在打印容器变量后,这个 div 标签下的几乎所有信息都不见了,只添加了一些注释。我不知道为什么会发生这种情况。
答案
这个脚本将打印所有这里的名字。
import requests
from bs4 import BeautifulSoup
url = 'https://dota2.gamepedia.com/Abaddon/Counters'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
all_heros = [a.text for a in soup.select('b > a')]
#print them:
print(*all_heros, sep='\n')
打印:
Ancient Apparition
Axe
Brewmaster
Doom
Lina
Lion
Mars
Outworld Devourer
Silencer
Shadow Demon
Death Prophet
Mirana
Bane
Batrider
Beastmaster
Chen
Techies
Bloodseeker
Necrophos
Nyx Assassin
Storm Spirit
Phantom Assassin
Io
Axe
Legion Commander
Centaur Warrunner
Oracle
EDIT (要刮取类别,你可以使用 .find_previous()
函数)。)
import requests
from bs4 import BeautifulSoup
url = 'https://dota2.gamepedia.com/Abaddon/Counters'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
data =
for hero in soup.select('b > a'):
data.setdefault(hero.find_previous(class_='mw-headline').text, []).append(hero.text)
#print them:
from pprint import pprint
pprint(data)
打印:
'Bad against...': ['Ancient Apparition',
'Axe',
'Brewmaster',
'Doom',
'Lina',
'Lion',
'Mars',
'Outworld Devourer',
'Silencer',
'Shadow Demon'],
'Good against...': ['Death Prophet',
'Mirana',
'Bane',
'Batrider',
'Beastmaster',
'Chen',
'Techies',
'Bloodseeker',
'Necrophos',
'Nyx Assassin'],
'Works well with...': ['Storm Spirit',
'Phantom Assassin',
'Io',
'Axe',
'Legion Commander',
'Centaur Warrunner',
'Oracle']
以上是关于我如何才能从html页面中找到美丽汤的每个链接作为一个字符串?(这个网站的findAll功能不好找)的主要内容,如果未能解决你的问题,请参考以下文章