"刮" href链接后直接的字母

时间:2015-11-15 15:28:32

标签: python html python-3.x beautifulsoup python-requests

我最近开始使用Python,而我正在尝试编写自己的WebCrawler / Scraper,以便更多地学习语言。我遇到的问题是(HTML的一部分):

<td class="name"><a href="/leagues/euw/1234">THENAME</a></td>
                                                ^
                                           I want the name

当我运行我的应用程序时,我只得到输出: 例如:<td class="name"><a href="/leagues/euw/1234">THENAME</a></td>

作为&#34;初学者&#34;我不知道如何用Python获得THENAME。

这是我的Python代码:

import requests
from bs4 import BeautifulSoup

def summ_spider(max_pages):
    page = 5000
    while page <= max_pages:
        url = "http://www.lolsummoners.com/ladders/euw/" + str(page)
        r = requests.get(url)

        soup = BeautifulSoup(r.content, "html.parser")
#       print (soup)

        links = soup.find_all("a")

        for link in links:
            print
            "<a href='{0:s}'>{1:s}</a>".format(link.get("href"), link.text)


        g_data = soup.find_all("table", {"class": "ladder"})
        n_data = soup.find_all("td", {"class": "name"})

        page+=1

        f_data = n_data [108:122]

        print(f_data)
#       print (links)
#       print (n_data)

summ_spider(3000000)

PS:我想要输出(以后会安装.txt) 只有:

NAME1
NAME2
NAME3

而不是其他HTML。 我会非常感谢一些帮助/批评

1 个答案:

答案 0 :(得分:0)

当您运行自己的功能时,会收到<td class="name"><a href="/leagues/euw/1234">THENAME</a></td>之类的回复,因为这是您实际打印的内容。如果你想获得&#34;名称&#34;您可以执行类似

的链接
for link in links:
    print link.text

你得到的原因&#34;接下来&#34;返回是因为它是页面上的最后一个链接。