以下是Python简单实现网页内容抓取功能示例的完整攻略:
简介
在网络爬虫中,网页内容抓取是最常见的操作之一。Python作为一门易于学习的语言,有着丰富的第三方库和工具,可以用来轻松地实现网页内容抓取。本文将介绍如何使用Python实现网页内容抓取的功能。
步骤
- 安装requests库
在Python中,可以使用requests库来实现对网页的请求和响应。使用pip命令进行安装:
pip install requests
- 发送请求并获取响应
使用requests库发送一个HTTP请求,并获取响应,以下是一个示例代码:
import requests
url = "https://www.baidu.com/"
response = requests.get(url)
print(response.status_code)
print(response.text)
代码中,我们使用requests.get()方法获取给定url的网页内容,得到的结果保存在response中。我们使用了response.status_code获取响应状态码,并使用response.text获取文本内容,并将这些内容打印输出。
- 解析HTML页面
我们可以使用BeautifulSoup库来解析HTML页面,以下是一个示例代码:
from bs4 import BeautifulSoup
html = "<html><head><title>标题</title></head><body><p>这是一个段落。</p></body></html>"
soup = BeautifulSoup(html, 'html.parser')
print(soup.title.string)
print(soup.p.string)
代码中,我们使用BeautifulSoup将HTML页面解析成一个BeautifulSoup对象,使用soup.title.string获取页面标题,使用soup.p.string获取页面中的段落内容。
示例说明
示例一
在这个例子中,我们要抓取豆瓣电影Top250的页面,并提取电影的名称和评分。以下是代码:
import requests
from bs4 import BeautifulSoup
url = "https://movie.douban.com/top250"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
movies = soup.find_all("div", class_="hd")
for movie in movies:
name = movie.a.span.text.strip()
star = movie.parent.find("span", class_="rating_num").text.strip()
print(name, star)
在这个例子中,我们使用requests库获取豆瓣电影Top250的网页内容,并使用BeautifulSoup解析HTML页面。观察页面源码可以发现,每一部电影的名称和评分都在一个名为hd的div容器中。我们使用soup.find_all()方法获取所有hd容器,并使用循环依次提取电影名称和评分。
示例二
在这个例子中,我们要抓取知乎某个问题下的所有回答,并提取回答的内容。以下是代码:
import requests
from bs4 import BeautifulSoup
url = "https://www.zhihu.com/question/22098644"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
answers = soup.find_all("div", class_="zm-editable-content")
for answer in answers:
print(answer.text.strip())
在这个例子中,我们使用requests库获取知乎某个问题下的网页内容,并使用BeautifulSoup解析HTML页面。观察页面源码可以发现,每一个答案的内容都在一个名为zm-editable-content的div容器中。我们使用soup.find_all()方法获取所有zm-editable-content容器,并使用循环依次提取答案的内容。
以上就是Python简单实现网页内容抓取功能的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python简单实现网页内容抓取功能示例 - Python技术站