我有一个包含多个div的HTML页面,如:
<td class="b-list__main">
<a data-gtm="Page B list" href="C.php?bsn=31888&snA=773&tnum=2" class="b-list__main__title">【info】10/23 develop note-new character</a><span class="b-list__main__icon"><i title="有圖片" class="material-icons icon-photo"></i></span>
</td>
我是python和BeautifulSoup的新手,我正在尝试从这个类获取所有URL。 我试过:
for lastpage in root.find_all("td", class_="b-list__main"):
print(lastpage.p)
输出:
<p class="b-list__main__title" data-gtm="Page B list" href="C.php?bsn=31888&snA=773&tnum=2">【info】10/23 develop note-new character</p>
<p class="b-list__main__title" data-gtm="Page B list" href="C.php?bsn=31888&snA=774&tnum=1">【Q】alient team choice</p>
<p class="b-list__main__title" data-gtm="Page B list" href="C.php?bsn=31888&snA=772&tnum=1">【Q】lock account question</p>
我的理想输出是获得最大的数字,例如774。 但我一次只做一步,只是试着先获取url,然后获取编号
C.php?bsn=31888&snA=773&tnum=2
C.php?bsn=31888&snA=774&tnum=1
C.php?bsn=31888&snA=772&tnum=1
我还尝试:
for lastpage in root.find_all("td", class_="b-list__main"):
link = lastpage.fine('p',href=True)
if link is None:
continue
print(lastpage.p['href'])
但是得到TypeError: 'NoneType' object is not subscriptable
谢谢你的帮助
我的代码:
import bs4
import re
def getData(url):
request = req.Request(url, headers={
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 "
})
with req.urlopen(request) as response:
data = response.read().decode("utf-8")
root = bs4.BeautifulSoup(data, "html.parser")
for lastpage in root.find_all("td", class_="b-list__main"):
print(lastpage.p)
url = "https://forum.gamer.com.tw/B.php?bsn=31888"
getData(url)
我从未见过带有
href
属性的p
标记,但如果html代码是这样的,您可以尝试以下方法:输出:
为了找到最大的数字,可以使用一点
regex
。只需将这些行添加到上面提供的代码中:输出:
编辑:
以下是完整的代码:
输出:
相关问题 更多 >
编程相关推荐