在具有多个链接的页面上抓取特定链接?

时间:2016-01-03 05:00:30

标签: python beautifulsoup html-parsing

我正在尝试收集一个特定的链接,以便稍后在我的脚本中访问它,但是我正在爬行的页面上有很多链接,并且它们都具有相同的href标记。

如何具体选择一个?该网站是bbb.org,我的代码如下。

示例,在bbb上搜索lamps,我想收集嵌入了商家名称的链接,以便稍后访问他们的个人资料。

#!/usr/bin/python

import requests
from bs4 import BeautifulSoup

def bbb_spider(max_pages):
bus_cat = raw_input('Enter a business category: ')
pages = 1
while pages <= max_pages:
    url = 'http://www.bbb.org/search/?type=category&input=' + str(bus_cat) + '&page=' + str(pages)
    sauce_code = requests.get(url)
    plain_text = sauce_code.text
    soup = BeautifulSoup(plain_text, "html.parser")
    for link in soup.findAll('a'):
        href = link.get('href')
        print(href)
    pages += 1

2 个答案:

答案 0 :(得分:1)

您需要位于搜索结果表内的h4元素内的链接。有不同的方式来达到它们,但我会做一个CSS selector

soup.select("table.search-results-table tr h4 a")

答案 1 :(得分:0)

我创造了类似的东西。 看看我的爬虫示例。 https://github.com/shiva1791/Python_webcrawler

代码从link.csv获取需要解析的url。 解析页面上每个链接的所有逻辑都在webcrawler.py文件中。

相关问题