美丽的汤-在div之后提取

时间:2019-04-11 02:15:01

标签: python beautifulsoup

from bs4 import BeautifulSoup as Soup,Tag
import requests

url=r"https://en.wikipedia.org/wiki/Lists_of_tourist_attractions"

r = requests.get(url)
soup = Soup(r.content,"html.parser" )

for link in soup.find_all('a', href=True):
    print (link['href'])

for ul in soup.findAll('div'):
    print(ul.text)
    for li in ul.findAll('li'):
        print(li.text)

上面的是一个工作代码。这可以使用任何维基百科页面。 问题是: 我试图得到 href和title彼此相邻。我无法得到这个。

在第二个for循环中,将所有内容作为div并打印在一行中。

我如何打印标题和href副词(li内容)

2 个答案:

答案 0 :(得分:1)

也许这不是您想要的,但是您可以尝试一下。我对您的两个for循环都做了小的修改:

for lnk in soup.findAll('a', href=True):
    title = (lnk.text)
    link = (lnk['href'])
    if title != '':
        print ("Title: {}, Link: https://en.wikipedia.org{}".format(title, link))

答案 1 :(得分:1)

尝试这个:

^([A-z0-9]+(\.?)+([A-z0-9]?))+@(?!(Yahoo.net|Google.com))[A-z]+\.[A-z]+$

顺便说一句,我建议使用for link in soup.find_all('a', href=True): print (link.get('href') +'->' + link.get('title')) wikipedia API功能访问数据。

  

https://www.mediawiki.org/wiki/API:Main_page
  https://en.wikipedia.org/wiki/Special:Export