无法创建适当的选择器来刮取某些特定链接

2024-10-01 15:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个脚本,使用BeautifulSoup从网页的VIDEOS BY YEAR一章中获得一些位于左侧栏中的特定url。问题是,如果我在脚本中使用硬编码的数字,我可以解析这些特定的url,正如我在下面已经演示的那样。然而,我的意图是在脚本中不使用任何硬编码的数字来获取那些准确的url。事实上,我希望任何css selector也能这样做。希望有人伸出援助之手来完成这个任务。你知道吗

这是我迄今为止尝试过的:

import requests
from bs4 import BeautifulSoup

URL = "https://www.wiseowl.co.uk/videos/"
response = requests.get(URL)
soup = BeautifulSoup(response.text,"html5lib")
for item in soup.select(".woMenuList .woMenuItem a")[-7:]:
    print(item['href'])

结果如下:

/videos/year/2011.htm
/videos/year/2012.htm
/videos/year/2013.htm
/videos/year/2014.htm
/videos/year/2015.htm
/videos/year/2016.htm
/videos/year/2017.htm

URL所在的Html元素:

<ul class="woMenuList">

    <li class="woMenuItem"><a href="/videos/year/2011.htm">2011 (19)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2012.htm">2012 (45)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2013.htm">2013 (29)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2014.htm">2014 (62)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2015.htm">2015 (25)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2016.htm">2016 (46)</a></li>
    <li class="woMenuItem"><a href="/videos/year/2017.htm">2017 (24)</a></li>

</ul>

顺便说一句,所有的类别和链接都在类似类型的类和标记中,这就是为什么我被卡住了。提前感谢您的关注。你知道吗


Tags: import脚本url编码数字lirequestsyear
1条回答
网友
1楼 · 发布于 2024-10-01 15:30:22

可以使用*=运算符仅选择包含字符串'/videos/year'的链接。你知道吗

import requests
from bs4 import BeautifulSoup

URL = "https://www.wiseowl.co.uk/videos/"
response = requests.get(URL)
soup = BeautifulSoup(response.text,"html5lib")
for item in soup.select(".woMenuList .woMenuItem a[href*='/videos/year']"):
    print(item['href'])

相关问题 更多 >

    热门问题