php如何抓取网页数据(如何使用BeautifulSoup库从HTML页面中提取内容(图))

优采云 发布时间: 2021-09-18 06:19

  php如何抓取网页数据(如何使用BeautifulSoup库从HTML页面中提取内容(图))

  今天我们将讨论如何使用BeautifulSoup库从HTML页面提取内容。提取后,我们将使用BeautifulSoup将其转换为python列表或字典

  什么是网络爬行

  答案很简单:并不是每个网站都有获取内容的API。你可能想从你最喜欢的烹饪网站中获取食谱,或者从你的旅游博客中获取照片。如果没有API,提取HTML或爬行可能是获取内容的唯一方法。我将向您展示如何在Python中实现这一点

  注意:并非所有网站都喜欢抓取,有些网站可能会被明确禁止。如果可以捕获,请与网站所有者联系

  如何抓取网站

  为了使网络爬网在Python中工作,我们将执行三个基本步骤:

  使用请求库提取HTML内容。分析HTML结构并识别收录内容的标记。使用beautifulsoup提取标记并将数据放入python列表中。安装库

  让我们先安装我们需要的库。请求从中获取HTML内容网站. Beauty soup解析HTML并将其转换为Python对象。要为Python 3安装这些,请运行:

  pip3 install requests beautifulsoup4

  提取HTML

  在本例中,我将选择抓取的技术部分网站. 如果你转到这个页面,你会看到一个文章的标题、摘录和发布日期列表。我们的目标是创建一个收录此信息的文章列表

  技术页面的完整URL为:

  https://notes.ayushsharma.in/technology

  我们可以使用请求从此页面获取HTML内容:

  #!/usr/bin/python3

import requests

url = 'https://notes.ayushsharma.in/technology'

data = requests.get(url)

print(data.text)

  变量数据将收录页面的HTML源代码

  从HTML中提取内容

  要从中接收的HTML中提取数据,我们需要确定哪些标记具有我们需要的内容

  如果浏览HTML,您将在顶部附近找到此部分:

  HTML:

  

Using variables in Jekyll to define custom content

I recently discovered that Jekyll's config.yml can be used to define custom

variables for reusing content. I feel like I've been living under a rock all this time. But to err over and

over again is human.

Aug 2021

  这是每篇文章整页中重复的部分文章. 我们可以看到。卡片标题有一个文章title,。卡片文本摘录,和。卡片页脚>小发行日期

  让我们用漂亮的汤来提取这些内容

  Python:

  上面的代码将提取文章并将它们放入数据变量中的my_u中。我正在使用pprint进行一个很好的打印输出,但是您可以在自己的代码中跳过它。将上述代码保存在名为fetch.py的文件中,并使用以下命令运行它:

  python3 fetch.py

  如果一切顺利,您应该看到:

  Python:

  

[{'excerpt': "I recently discovered that Jekyll's config.yml can be used to "

"define custom variables for reusing content. I feel like I've "

'been living under a rock all this time. But to err over and over '

'again is human.',

'pub_date': 'Aug 2021',

'title': 'Using variables in Jekyll to define custom content'},

{'excerpt': "In this article, I'll highlight some ideas for Jekyll "

'collections, blog category pages, responsive web-design, and '

'netlify.toml to make static website maintenance a breeze.',

'pub_date': 'Jul 2021',

'title': 'The evolution of ayushsharma.in: Jekyll, Bootstrap, Netlify, '

'static websites, and responsive design.'},

{'excerpt': "These are the top 5 lessons I've learned after 5 years of "

'Terraform-ing.',

'pub_date': 'Jul 2021',

'title': '5 key best practices for sane and usable Terraform setups'},

... (truncated)

  就这些!在22行代码中,我们用Python构建了一个web爬虫程序。您可以在我的示例repo中找到源代码

  结论

  使用python列表中的网站内容,我们现在可以用它做一些很酷的事情。我们可以将其作为JSON返回到另一个应用程序,或者使用自定义样式将其转换为HTML。请随意复制和粘贴上述代码,并在您最喜欢的网站上进行实验@

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线