0

我正在玩 BeautifulSoup 并抓取 bing 搜索结果。我不打算进行广泛的抓取,我只是在尝试不同的数据结构等。

我想要做的是创建一个字典,其中包含来自我的抓取的不同解析结果。换句话说,我需要将链接作为一个值,元(描述)信息放在另一个值中。

我的最终结果应该看起来像我想象的这样:

{  '1' : {
     'link' : '<a href="watever">Whatever</a>',
     'description' : 'this is a great website'
   },
   '2' : {
     ... etc ...
   }
}

我当前的代码如下所示:

from bs4 import BeautifulSoup
import requests
import html5lib

url = requests.get("http://www.bing.com/search?q=pet+toys")

data = url.text

soup = BeautifulSoup(data, "html5lib")

for link in soup.find_all("li", "sa_wr"):
        record = {'link' : link.find_all("a")}

print record

我显然对 Python 很陌生……在 PHP 中,我会处理这个问题,我仍在研究 Python 语法等。

任何帮助表示赞赏。

解决方案:

代码按预期工作,但我看到的字典只有一项,因为我没有遍历它。

此外,根据建议,我将每个字典添加到列表中,而不是字典。

records = []

for link in soup.find_all("li", "sa_wr"):
        for url in link.find_all("a"):
                records.append( {'link' : url.get("href"), 'title' : url.contents} )

for record in records:
        print record['title']
4

0 回答 0