【发布时间】:2016-12-20 00:30:59
【问题描述】:
import requests
from bs4 import BeautifulSoup
url = 'https://www.brightscope.com/401k-rating/240370/Abengoa-Bioenergy-Company-Llc/244317/Abengoa-Bioenergy-Us-401K-Savings-Plan/'
thepage = requests.get(url)
urlsoup = BeautifulSoup(thepage.text, "html.parser")
plandata = urlsoup.find(class_="plans-section").text
print(plandata)
我试图只抓取评级编号的类别,但是当我使用此代码时,我什么也得不到:(。
- 如何只刮取等级编号的类别?
- 如何抓取多个类(这是最重要的部分)并将它们放入一个可读的列表中?
我的想法是循环抓取每个页面并将它们附加到带有新行的 .csv 文件中。
下面的例子;
Rating #1, Company Name1, etc, etc, etc
Rating #2, Company Name2, etc, etc, etc
我只是无法克服弄清楚这一点的困难。感谢您的帮助!
编辑 - “计划部分”类包含我想要的数据,但它似乎被分解为它下面的两个 div 标签。我想抓取“数据文本高于平均水平”类中的数据。问题是每个页面似乎只有相同的“数据文本”以及每个部分/页面更改后的内容。我有哪些选择?
【问题讨论】:
-
您提供的网址不包含任何 class='data-text above-average'
-
你是对的。我刚刚更新了 url,它的类“数据文本高于平均水平”,但我真的想抓取任何具有“数据文本 *”的类,我添加了星号来替换“数据文本”后面的任何文本。
标签: python web-scraping beautifulsoup python-requests