使用python抓取网站时如何解决多个链接的输出问题?

时间:2017-12-31 15:20:38

标签: python python-3.x web-scraping

我是python和学习网页抓取的新手。我试图从这样的网站上删除标题和链接(而不是标题链接):

            Title 1
            Link 1

            Title 2 
            Link 2

            Title 3
            Link 3

但问题是我无法以这种方式做,我试图在for循环(标题)内嵌套for循环(链接)但是它打印标题如上,但也打印所有标题的链接一个,像这样。

            Title 1
            Link 1
            Link 2
            Link 3


            Title 2
            Link 1
            Link 2
            Link 3


            Title 3
            Link 1
            Link 2
            Link 3

我有一切都可以解决这个问题,但没有运气!任何人都可以请帮助。

我可以添加套装来解决这个问题吗?因为集合避免重复,我认为它可能有所帮助。

我的代码如下:

import requests
from bs4 import BeautifulSoup

def scrape(url):
    source_code = requests.get(url)
    text = source_code.text
    soup = BeautifulSoup(text)
    for title in soup.findAll("html_element", {"attribute": "value "}):      #loop for title
        tit = title.string
        print("\n",tit)
        for link in soup.findAll("html_element", {"attribute": "value "}):   #loop for links
            href = link.get("href")
            print(href)
           #break


scrape("http://www.website.com/")

1 个答案:

答案 0 :(得分:0)

我建议你制作两个包含这些名字的python列表。 在一个列表中,您可以添加每个“标题”,另一个列表可以添加“链接”。这些列表将是嵌套for循环的一部分。最后,您必须使用%s运算符来更改与html代码段对应的属性。