我正在创作一个剧本,从funimation给我带来新的剧集。所以,我写了这个简单的脚本。在
import requests
from bs4 import BeautifulSoup
import subprocess
r = requests.get('http://www.funimation.com/videos/episodes')
soup = BeautifulSoup(r.text)
print soup.title
subtitles = soup.findAll('div',{'class':'item-resume-info clearfix'})
for show in subtitles:
x = show.find_all('a', limit=1)
for a in x:
url = a['href']
file = open("LatestLink.txt", "w")
file.write(url)
file.close()
如您所见,它从hompage获取内容并显示链接。它起作用了,给了我链接。但是所有的链接都在给我。即使我限制了输出,它仍然显示20个链接。为什么会这样?当我把它写到文件中时,它只会在页面上打印一个链接和最旧版本的链接。在
我该如何对结果排序或将其限制在1。?在
它为每个元素提供一个
a
标记,因此如果您使用limit=1
和limit=1
一起使用,则不会得到所有这些标记:如果您在循环中添加一个计数和增量,您还可以验证是否有20个带有
limit=1
的URL和40个没有limit=1
的URL。您的第一个findAll返回20个元素,每次迭代每个元素并提取a
标记,这样您就得到了应该得到的内容。在对于您的文件问题,您只能在文件中看到一个链接,因为您使用
^{pr2}$w
保持覆盖,请在循环外打开文件一次:如果您实际上只希望第一个
item-resume-info clearfix
获得单个链接,那么使用find而不是findAll,.find
将返回第一个.findAll
返回all。在返回
http://www.funimation.com/shows/chaos-dragon/videos/official/antinomy
,页面上的第一个结果。在相关问题 更多 >
编程相关推荐