在包含多个 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 文件中。
我正在尝试收集特定的 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 文件中。