在包含多个 link 的页面上抓取特定 link?

Crawling a specific link on a page with multiple links?

我正在尝试收集特定的 link 以便稍后在我的脚本中访问它,但是我正在抓取的页面上有很多 link,它们都具有相同的href 标签。

我怎样才能select一个具体的?该站点是 bbb.org,我的代码在下面。

例如,在 bbb 上搜索 lamps,我想收集嵌入了公司名称的 link,以便稍后访问他们的个人资料。

#!/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

您需要位于 h4 个元素内的链接,这些元素位于 搜索结果 table 内。有不同的方法可以找到它们,但我会做一个 CSS selector:

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

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

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