Python 如何使用beautifulsoup刮取整个网站

Python 如何使用beautifulsoup刮取整个网站,python,beautifulsoup,Python,Beautifulsoup,我对编程非常陌生,尤其是OO编程。尽管如此,我还是试图编写一个非常简单的蜘蛛来进行网络爬行。以下是我的第一种方法: 我需要从该页面获取数据: 首先,我在页面上做了一个查看源代码来查找HTML元素? 注意:我需要获取此行正下方的数据: EVS认证机构搜索结果:6066 我为这项工作选择了美丽的汤——因为它非常强大: 我使用find_all: soup.find_all('p')[0].get_text() # Searching for tags by class and id 注意:CSS使

我对编程非常陌生,尤其是OO编程。尽管如此,我还是试图编写一个非常简单的蜘蛛来进行网络爬行。以下是我的第一种方法:

我需要从该页面获取数据:

首先,我在页面上做了一个查看源代码来查找HTML元素?

注意:我需要获取此行正下方的数据: EVS认证机构搜索结果:6066

我为这项工作选择了美丽的汤——因为它非常强大:

我使用find_all:

soup.find_all('p')[0].get_text() # Searching for tags by class and id
注意:CSS使用类和ID来确定应用某些样式的HTML元素。我们也可以在刮取时使用它们来指定要刮取的特定元素

参见课程:

                  <div class="col-md-4">
            <div class="vp ey_block block-is-flex">
  <div class="ey_inner_block">
    <h4 class="text-center"><a href="/youth/volunteering/organisation/935175449_en" target="_blank">&quot;People need people&quot; Zaporizhya oblast civic organisation of disabled families</a></h4>
            <p class="ey_info">
    <i class="fa fa-location-arrow fa-lg"></i>
    Zaporizhzhya, <strong>Ukraine</strong>
</p>    <p class="ey_info"><i class="fa fa-hand-o-right fa-lg"></i> Sending</p>
                  <p><strong>PIC no:</strong> 935175449</p>
        <div class="empty-block">
      <a href="/youth/volunteering/organisation/935175449_en" target="_blank" class="ey_btn btn btn-default pull-right">Read more</a>    </div>
  </div>
现在,我们可以使用find_all方法按类或id搜索项目。在下面的示例中,我们将搜索包含类外部文本的任何p标记

<div class="col-md-4">
现在我必须把所有的东西结合起来

更新:我的方法:到目前为止:

我使用BeautifulSoup4从网页中提取了包装在多个HTML标记中的数据。我想将所有提取的数据存储在一个列表中。更具体地说:我希望每个提取的数据都作为单独的列表元素,用逗号分隔(即CSV格式)

从开头开始:

这里有HTML内容结构:

 <div class="view-content">
            <div class="row is-flex"></span>
                 <div class="col-md-4"></span>
            <div class </span>
  <div class= >
    <h4 Data 1 </span>
          <div class= Data 2</span>
            <p class=
    <i class=
     <strong>Data 3 </span>
</p>    <p class= Data 4 </span>
          <p class= Data 5 </span>
                  <p><strong>Data 6</span>
        <div class=</span>
      <a href="Data 7</span>
  </div>
</div>
for data in elem.find_all('span', class_=""):
这将给出一个输出:

data = [ele.text for ele in soup.find_all('span', {'class':'NormalTextrun'})]
print(data)
输出: [‘数据1’、‘数据2’、‘数据3’等等]

问题:/我需要有关提取部分的帮助

试试这个

data = [ele.text for ele in soup.find_all(text = True) if ele.text.strip() != '']
print(data)

那么,问题是什么?你需要哪部分的帮助?你好,亲爱的Keyur-坦率地说:我是Python/&BS初学者,我只是一些教程背景。如果你能帮我完成下一步要做的事情。我需要一种方法。你能在这里帮我一个忙吗?我可以继续很高兴听到你的消息-马拉加你说
现在我必须把所有的结合起来。
。你能解释清楚你想做什么吗?在你提供MCVE后,这里的人会很乐意帮助你。读-。另外,如果我忽略了一些事情,没有得到你确切的问题,我也很抱歉。亲爱的凯尔-再次非常感谢。我已经添加了一些内容,并试图提供一个简单且可验证的示例。换言之:我已经尽力收集我所有的信息,以便我们可以讨论该方法。如果你能仔细看看BS4的数据提取部分,我将非常高兴。-好心的问候马拉加迪尔马拉加-你得听听基尔的话-我认为他是对的。你得让我们看一看你想解析的源代码
data = [ele.text for ele in soup.find_all('span', {'class':'NormalTextrun'})]
print(data)
data = [ele.text for ele in soup.find_all(text = True) if ele.text.strip() != '']
print(data)