Python抓取列表的网站链接

Python抓取列表的网站链接,python,beautifulsoup,screen-scraping,jupyter-notebook,Python,Beautifulsoup,Screen Scraping,Jupyter Notebook,我正在尝试删除网站链接,然后将链接添加到空列表中 这是我的密码: from bs4 import BeautifulSoup import requests l = [] r = requests.get("http://www.betexplorer.com/soccer/england/premier-league-2016-2017/results/") c=r.content soup=BeautifulSoup(c,"html.parser") for link in soup.f

我正在尝试删除网站链接,然后将链接添加到空列表中

这是我的密码:

from bs4 import BeautifulSoup
import requests

l = []

r = requests.get("http://www.betexplorer.com/soccer/england/premier-league-2016-2017/results/")
c=r.content
soup=BeautifulSoup(c,"html.parser")
for link in soup.find_all("a",{"class":"in-match"}):
    href=link.get('href')
    l.append(href)
    print(l[0])
现在我的结果是,当我试图打印网站的第一个链接时:

/soccer/england/premier-league-2016-2017/arsenal-everton/SGPa5fvr/
/soccer/england/premier-league-2016-2017/arsenal-everton/SGPa5fvr/
/soccer/england/premier-league-2016-2017/arsenal-everton/SGPa5fvr/
/soccer/england/premier-league-2016-2017/arsenal-everton/SGPa5fvr/
.................
问题是,当我试图打印出网站的特定链接时,该链接打印了很多次,并且应该只打印一次。

print(l[0])
for
循环的每次迭代中运行,并且总是打印列表的第一个元素


在的
循环完成后,您的列表将包含所有要打印的链接。此时,您可以遍历列表并打印每个元素。

更正代码的缩进。

print(l[0])在for循环中,这就是它被反复执行的原因


您犯了一个简单的逻辑错误。您的打印语句当前在循环中。将其从循环范围中移除将解决您的问题

固定版本:

for link in soup.find_all("a",{"class":"in-match"}): 
    href=link.get('href')
    l.append(href)              
print(l[0])
循环执行后,
l
数组将填充链接

Yes
print(l[0])
在循环代码中:)
for link in soup.find_all("a",{"class":"in-match"}): 
    href=link.get('href')
    l.append(href)              
print(l[0])